- Linux下的mysql表名数据库名默认区分大小写
docker下run启动时参数添加 --lower_case_table_names=1
如果docker已经启动:
docker exec -it mysql bash
echo "lower_case_table_names=1" >> /etc/mysql/mysql.conf.d/mysqld.cnf
service mysql restart #容器内运行
- mysql内的变量设置
set [global|session(default)] variable_name=xxx; #默认是会话有效, 单独设置global可改为全局
set @variable_name=xxx; #定义用户变量需要加@
select @variable_name:=xxx; #必须使用:=赋值, 因为在SELECT语句中“=”号被占用
#展示mysql系统变量
show variables like "%case%";
select @variable_name;
- 修改列
add|drop|change|modify
#[add]最后接first或者after ColumName,没有before
#change 可以更改 列名 和 列类型 (只改类型也要把新列名和旧列名写上, 即旧名字写两遍, 只改类型)
-
命令行多行模式
多条语句需要执行时,替换分隔符DELIMITER //
,要改回分号执行DELIMITER ;
-
修改密码
mysql> set password for root@localhost = password(‘123’);
- 创建用户
mysql> create user 'rose'@'%' IDENTIFIED BY '123456'; // 任意远程主机登陆,通配符%
mysql> create user 'jack'@'localhost' IDENTIFIED BY '123456'; //本地用户
创建用户后,该用户只能连接到数据库服务器,但并没有操作该数据库服务器的权限。
- 授权
mysql> GRANT SELECT, INSERT ON bookdb.usertable TO 'jack'@'%';
mysql> GRANT ALL ON DBname.* TO 'rose'@'localhost' WITH GRANT OPTION;
# 授权后需要重连
- 撤销授权
mysql> REVOKE SELECT ON *.* FROM 'jack'@'%';
- 删除用户
mysql> DROP USER 'usernamexxx'@'hostxxx';
- 设置与更改用户密码
mysql> SET PASSWORD FOR 'usernamexxx'@'hostxxx' = PASSWORD('newpasswordxxx');
MySQL 8.0.4权限认证插件服务从mysql_native_password改成caching_sha2_password.可以这样修改密码:
mysql> ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';
- 查看docker映射mysql的IP地址,其他容器使用mysql容器会用到(容器使用容器)
docker inspect mysql:5.7 |grep "IPAddress"