把MySQL中的一些常见问题与常用语句汇总一下,以备后查。
root用户初始登入与重置密码
初次安装MySQL后,root用户的密码会存放于日志文件/var/log/mysqld.log
, 登入之后,首先需要使用如下命令重置root密码,否则是不能创建和修改任何用户:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your-password';
允许root用户远程登入
默认root只允许从本机登入,如果需要使用root远程登入,需做如下设置:
DROP USER 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
为特定数据库创建特定用户并赋予权限
我们通常会为某个应用的数据库创建专有的用户,限定该用户只在该数据库上拥有权限,且为全部权限。SQL语句如下:
CREATE DATABASE `myapp`;
DROP USER 'myapp'@'hostname';
CREATE USER 'myapp'@'hostname' IDENTIFIED BY 'my-password';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp'@'hostname' WITH GRANT OPTION;
FLUSH PRIVILEGES;
导出完整的数据库到SQL脚本,包含schema和insert语句
mysqldump -u root -pyour-password --add-drop-database --add-drop-table mydb > mydb.sq
执行SQl脚本
mysql -h host -u user -p < your-sql.sql