mysql数据库管理备份运维常用命令

时间:2022-06-18 15:13:17

登陆mysql:

mysql -u root -p password

远程访问开启((%)表示任何主机连接,可以换固定IP来访问远程连接):

GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; #远程访问主要修改root@'localhost'修改为%任何地址

在ssh客户端命令访问另一台mysql:

mysql -h *.*.*.* -u root –p 'password'

创建test数据库:

create database test default character set utf8 collate utf8_general_ci;

数据库授权:

grant all on test.* to test@'%' identified by "password";

刷新:

flush privileges;

锁表:

flush tables with read lock;

解表:

unlock tables;

导入数据:

use test;
source test.sql;

导出完整的数据库备份文件:

mysqldump -h 127.0.0.1 -P 3306 -u root -p 'password' --add-locks -q test --default-character-set=utf8  > test.sql

导出表结构(说明:-d:只导出表结构,不含数据):

mysqldump -h 127.0.0.1 -P 3306 -uroot -p 'password' --add-locks -q -d test --default-character-set=utf8  > test.sql

导出完整的数据库的数据不含表结构:

mysqldump -h 127.0.0.1 -P 3306 -u root -p 'password' --add-locks -q -t test --default-character-set=utf8  > test.sql

导出指定表结构和数据及压缩gzip

mysqldump -h 127.0.0.1 -P  -u root -p --add-locks -q --database test_db --tables test_tables --default-character-set=utf8 | gzip > test.gz

mysql查看系统变量及其值

SHOW VARIABLES;

mysql锁表查看

show open tables where In_use > 0; 

(where过滤, 只输出表上线程数大于0的表)
Database和Table就不做说明了;
In_use显示出有多少线程正在使用此表,有可能已经给这个表上锁,或者等待获得锁,然后给这个表上锁;
Name_locked显示表名称是否被锁定,0往往是没有锁定,1为写锁, 写锁基本发生在rename table时。

mysql 锁定ip 刷新主机

mysqladmin -uroot -p  flush-hosts

删除用户

DROP USER 'username'@'host';

命令继续添加待续.......................