进入mysql容器
docker exec -it 容器id /bin/bash
进入数据库
mysql -uroot -p
创建库和表
建库
create DATABASE 库名
创建用户并授权
创建一个任意ip都可以登录的用户,%代表所有IP
create use '用户名'@'%' identified by '密码';
查看权限
show grants for '用户'@'IP地址'
授权插入和更新
grant select ,insert,update on 数据库.[表] to "用户"@'%';
表示有所有的权限,除了grant这个命令,这个命令是root才有的。
grant all privileges on 数据库.[表] to "用户"@'%';
取消权限
取消来自远程服务器的用户对数据库db1的所有表的所有权限
revoke all on db1.* from '用户'@"%";
取消来自远程服务器的用户所有数据库的所有的表的权限
revoke all privileges on '*' from '用户'@'%';
mysql不能通过IP连接
- 先用localhost方式连接到MySQL数据库,然后使用MySQL自带的数据库mysql;
use mysql
执行:
select host from user where user = 'root';
发现,host的值就是localhost。所以将它的值改掉:
update user set host='%' where user = 'root';
修改完成后,执行:
flush privileges;
修改mysql字符集
- 查看mysql编码字符集
show variables like "char%";
修改字符集 以支持中文
SET character_set_server='utf8';
SET character_set_database = 'utf8';
设置后再次查看
如果没有修改成功,修改MySQL配置文件内容
vim /etc/my.cnf