MySQL常用命令

一,查看数据字符集


show variables like '%char%';

二,查看、修改数据库最大连接数


show variables like "max_connections";
set global max_connections = 500;

三,创建数据库


CREATE DATABASE cmpdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

四,查看表结构,修改表结构,给表增加、删除、修改字段


desc t_user;
ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name DROP column_name
ALTER TABLE table_name MODIFY column_name varchar(100)

五,数据库授权
1,mysql8之前可以一起执行


grant all privileges on *.* to 'ipt'@'%' identified by '123456' with grant option;
flush privileges;

2,mysql8需要语句拆分执行:创建账户、赋予权限


create user 'ipt'@'%' identified by '123456'
grant all privileges on *.* to 'ipt'@'%' with grant option
flush privileges;

六,数据库忽略表的大小写
修改/etc/my.cnf配置文件:


[mysqld]
lower_case_table_names=1

#MySQL 开启 binlog 和 GTID 模式
server-id=1
log-bin=mysql-bin
binlog_format=ROW
gtid-mode=on
enforce-gtid-consistency=1 # 设置为主从强一致性
log-slave-updates=1 # 记录日志

七,导入数据库命令
1,在shell命令行执行,需要有安装mysql client


mysql -uroot -p123 -Dgtja --default-character-set=utf8mb4 -v < gtja.sql

2,也可以直接进去mysql服务里执行


mysql> create database abc;
mysql> use abc;
mysql> set names utf8mb4;
mysql> source /home/abc/abc.sql

八,导出数据库命令
1,在shell命令行执行,需要有安装mysql client


mysqldump -h192.168.153.36 -uroot -p123456 -B icmp_admin > /opt/icmp.sql

2,常用参数:


--host=host_name, -h host_name      	MySQL 数据库主机地址,默认为 localhost
--port=port_num, -P port_num        	连接数据库端口号
--user=user_name, -u user_name      	指定连接数据库的用户名
--password[=password], -p[password] 	连接数据库的密码
--all-databases, -A			导出全部数据库的全部表
--databases, -B				导出几个数据库。参数后面所有名字参量都被看作数据库名 示例:mysqldump -uroot -p --databases test mysql
--tables					覆盖 --databases 或 -B 参数,指定需要导出的表名 示例:mysqldump -uroot -p --host=localhost --databases test --tables test
--default-character-set			设置默认字符集,默认值为 utf8。示例:mysqldump -uroot -p --all-databases --default-character-set=latin1
--no-data, -d				不导出任何数据,只导出数据库表结构。示例:mysqldump -uroot -p --host=localhost --all-databases --no-data

九,跨服务器导出导入数据
1,将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错


mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

2,加上-C参数可以启用压缩传递。密码特殊字符加单引号


mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test
mysqldump --host=192.168.61.118 -uroot -p'!@#$%qwert' -C --databases itcmp_message | mysql --host=192.168.0.248 -uroot -ppassword itcmp_message

3,导出指定表的数据


mysqldump -h192.168.61.16 -uroot -p1qaz@WSX --databases itcmp --tables t_virtualmachine | mysql -h192.168.0.248 -uroot -ppassword itcmp