管理Mysql常用指令
知识会更新,数据库系统也一样,本文只保证对Mysql 5.7以及MariaDB 10有效。
编码篇
- 展示当前默认的编码和字符集
SHOW VARIABLES LIKE 'char%';
- 修改服务器默认编码,通过修改配置文件*.cnf
skip-character-set-client-handshake
collation-server=utf8_unicode_ci #特定字符集,如果没有特殊要求可以注释
character-set-server=utf8
统一表名大小写
修改配置文件*.cnf,加入
lower_case_table_names=1
这将强制保存的表名具体文件为小写,但在逻辑层面表名不再大小写敏感; 为什么这么干?因为阿里云RDS这么干?好处还是蛮多的,想了解更细节的规则或者有定制化的需求还是应该参考官方手册。
用户和授权篇
- 获取当前用户
select user();
- 获取用户列表
SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;
- 创建一个可远程登录的用户root,并且设定明文密码
CREATE USER 'root'@'%' IDENTIFIED BY 'rawPasswd';
- 授予可远程登录的root所有权限
GRANT ALL on * to 'root'@'%' WITH GRANT OPTION;
- 将dbname的所有权限赋予dbuser
GRANT ALL on dbname.* to 'dbuser'@'%';
- 修改密码
SET PASSWORD FOR 'dbuser'@'%' = PASSWORD('rawPasswd');
- 删除用户
DROP USER 'dbuser'@'%';
导出与导入
mysql现有热备份,dump,数据表文件,文本SQL记录,增量备份,组群备份,文件系统快照等多种导出导入的方式;从易用和实用角度考虑只记录dump的导出和导入。
- 以user的身份连接到host:port导出database数据库到dump.sql
mysqldump -h [host] --port=[port] -p -u [user] --default-character-set=utf8 [database] > dump.sql
- 以user的身份连接到host:port导入dump.sql到database(需已存在)
mysql -h [host] --port=[port] -p -u [user] --default-character-set=utf8 [database] < dump.sql
- 或者以user的身份登录到host:port,再导入dump.sql
mysql -h [host] --port=[port] -p -u [user] --default-character-set=utf8
use [database]
source dump.sql