1)连接mysql
mysql -h 主机地址 -u 用户名 -p 用户密码
mysql -u 用户名 -p 用户密码
2)创建用户
# mysql添加新用户,一般不可使用root用户,创建其他用户供系统使用
mysql -h localhost -u root -p
CREATE USER 'smartcity'@'localhost' IDENTIFIED BY 'Unicloud.1';
SELECT host, user FROM mysql.user WHERE user='smartcity';
GRANT ALL ON *.* TO 'smartcity'@'localhost';
FLUSH PRIVILEGES;
# mysql开启远程访问
use mysql;
update user set host='%' where user='smartcity' and host='localhost'; #若安全要求比较高,可设置host为白名单机器ip
flush privileges;
3)备份/导入数据
#全量备份
mysqldump -u 用户名 -p 密码 --all-databases --single-transaction --routines --master-data=2 | gzip > "/tmp/$datestr.sql.gz";
#指定库备份
mysqldump -u 用户名 -p 密码 库名 > 导出文件名
#指定表备份
mysqldump -u 用户名 -p 密码 库名 表名 > 导出文件名
#导入数据,前提sql文件存储在服务器某一个目录,例如test库的sql文件存储在/tmp/test.sql
mysqldump -u 用户名 -p 密码
use test;
source /tmp/test.sql;
#导入大数据
mysql -u 用户名 -p 密码 < /test/test.sql
4)mysql慢查询、锁表
#查看进程id,然后用kill id杀掉进程
show processlist;
#查询正在执行的进程,time是用时,用时过长的情况需要注意是否存在慢查询
SELECT * FROM information_schema.PROCESSLIST where length(info) >0 ;
#查询是否锁表
show OPEN TABLES where In_use > 0;
#查看被锁住的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
#等待锁定
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
#杀掉锁表进程
kill 8934072
编辑
5)mysql定时备份
#创建脚本
vi /backup/backupmysql.sh
#!/bin/sh
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin #视实际情况修改参数文件
export PATH
unset USERNAME
datestr=`date '+%Y%m%d'`;
folder='/data/mysqlbackup/'; #备份路径,一般放在数据盘或者备份盘
mysqldump -u'root' -p'Unidc@2018' --all-databases --single-transaction --routines --master-data=2 | gzip > "$folder/$datestr.sql.gz";
find $folder -type f -mtime +7 -exec rm -f {} \;
#添加可执行权限
chmod +x /backup/backupmysql.sh
crontab -e
0 2 * * * sh /backup/backupmysql.sh #凌晨2点备份