概述
总结的一些 MySql 操作命令
MySql 服务启动
sudo /etc/init.d/mysqld start
or
sudo service mysqld start
用户管理
创建用户
CREATE USER 'octopus'@'%' IDENTIFIED BY 'octopus';
删除用户
drop user 'octopus'@'%';
数据管理
创建数据库
drop database testdb;
CREATE DATABASE testdb DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON testdb.* TO octopus@'%';
# 查询权限用户
GRANT SELECT ON testdb.* TO octopus@'%';
FLUSH PRIVILEGES;
with grant option 作用是:对象的 owner 可以将权限赋予某个用户,普通用户不用授予此权限。
撤销授权
revoke all privileges,grant option from 'user_name'@'host';
导入导出
导出表结构
mysqldump -h192.168.1.160 --opt --set-gtid-purged=OFF -d testdb -uoctopus -p > ddl-testdb-20160912.sql
导出数据
mysqldump -t -h192.168.1.160 --set-gtid-purged=OFF testdb -uoctopus -p > data-testdb-20160912.sql
导出表结构与数据
mysqldump -uoctopus -p --default-character-set=utf8 testdb > testdb-20160912.sql
mysqldump -uoctopus -p --default-character-set=utf8 --set-gtid-purged=OFF testdb > testdb-20160912.sql
mysqldump -uoctopus -p --default-character-set=utf8 -ntd -R testdb > testdb-20160912.sql
mysqldump -uoctopus -p --default-character-set=utf8 -h192.168.1.160 -P10002 testdb > testdb-20160912.sql
其中,-ntd 是表示导出存储过程;-R 是表示导出函数;-P 指定端口号;
导入sql脚本
- 方式一:
mysql -h192.168.1.160 -uoctopus -p testdb < testdb-20160912.sql
- 方式二:先登录数据库,然后执行命令(这种方式将顺序执行脚本,如果数据量大,不建议使用此种方式):
mysql > source testdb-20160912.sql
其他
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!
磁盘空间被占满导致无法启动服务,可使用 du -sh ./* 来查看 /var 下的文件大小详情,释放一些空间,再使用启动命令 /etc/init.d/mysql start 启动。
MySQL 启动慢查询日志
查看慢查询相关参数:
show variables like 'slow_query%';
方式一:命令设置:
set global slow_query_log='ON';
set global long_query_time=1;
方式二:配置文件设置:(配置后需重启服务)
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/run/mysqld/mysqld-slow.log
long_query_time = 1
sql_mode 修改
临时修改方案:
select @@global.sql_mode;
set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
永久修改方案:
修改 /etc/my.cnf 文件中 [mysqld] 模块下添加如下配置:
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 ethan89@aliyun.com