Mysql基础使用合集(基于docker的mysql)

进入mysql容器

 docker exec -it 容器id /bin/bash 

进入数据库

mysql -u root -p

创建库和表

建库

create DATABASE 库名

修改root用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

刷新生效

FLUSH PRIVILEGES;

远程登录root用户报错
Unable to load authentication plugin ‘caching_sha2_password’.
将加密规则重新改一下
PS :注意你的地址是%号还是localhost

ALTER USER 'root'@'%' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
alter user 'root'@'%' identified by '你的密码';

创建用户并授权

创建一个任意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 '用户'@"%"; 

取消来自远程服务器的用户所有数据库的所有的表的权限

rrevoke all on *.* from  '用户'@'%';

查看用户的权限

show grants for 用户名

修改mysql用户密码后不能重启docker容器

修改mysql root 用户后,重启容器失败 查看日志

docker logs mysql容器id

在这里插入图片描述
原来是root密码修改了,而容器配置的中的root密码没有修改
cd 到 /var/lib/docker/containers/目录下,这个目录就是docker容器的目录。
在containers目录下找到以这个mysql 容器ID开头的文件夹:xxxxx,进入这个目录,就可以看到有一个config.v2.json文件,这个文件就是该容器的配置文件。vim 打开文件

vim  config.v2.json

vim 查找MYSQL_ROOT_PASSWORD节点

/ MYSQL_ROOT_PASSWORD

修改为我们修改后的root密码。
重启docker mysql容器,居然失败了!返回一看,修改的密码又变回了root,停止掉docker服务

systemctl stop docker

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;  

新建用户不能远程连接,报错Access denied for user ‘’@’%’ to database ‘’

查看user表中root用户及test用户的权限对比

mysql> select Grant_priv,Super_priv from mysql.user where user in ('root','xhgcml');

发现root用户这两个value都是’Y’,而xhgcml用户都是’N’
在这里插入图片描述
将xhgcml用户这两个value都更新为’Y’

mysql> update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'xhgcml' and host = '%';

重启mysql docker容器即可

修改mysql字符集

  • 查看mysql编码字符集
show variables like "char%";

在这里插入图片描述
修改字符集 以支持中文

  SET character_set_server='utf8'; 
  SET character_set_database = 'utf8';

设置后再次查看
在这里插入图片描述
如果没有修改成功,修改MySQL配置文件内容

 vim /etc/my.cnf 
参考

服务器重新启动后docker容器内的mysql无法启动的原因及解决方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值