docker中安装mysql过程中创建实例并启动的代码,以及sqlyog连接docker中mysql的配置(sqlyog连接linux中的mysql同样配置)

docker run -p 3307:3306 --name mysql \
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/mysql-files:/var/lib/mysql \
-v /mydata/mysql/secure-file-priv:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.24

注:
1.此时docker中mysql的3306端口映射到linux上的3307端口(因我linux服务器中docker外部已安装了mysql,3306已被占用),可自定义,挂载到linux上未被其他进程占用的空闲端口即可。
2.docker中的配置文件被挂载到了linux中/mydata目录下中(mydata内的文件夹手动或非手动创建都行,非手动创建的话会自动生成。)
3.若外部通过sqlyog连接不上docker中的mysql,需先在docker内部docker ps一下,看mysql是否还在运行。
4.若docker ps后发现mysql一直在运行,但sqlyog连不上,可先在docker中进入mysql,通过命令进行配置,再在外面进行连通。
命令配置如下:
1.进入mysql

docker exec -it mysql /bin/bash

(-p后面是我创建的数据库实例中root用户的密码,我创建实例中设的root密码是123456,自己创建实例时密码根据个人兴趣设定即可)。

mysql -uroot -p123456;

3.输入sql语句

use mysql;
select host,user,plugin,authentication_string from user;

5.注:下面这句若提示错误则可能是root用户的密码不是123456,写错密码了(我创建实例中设的root密码是123456,自己创建实例时密码根据个人兴趣设定即可)。

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

注:下句是将user表中plugin字段中root用户的密码设为mysql_native_password(即改为自己的密码),自己的密码不是123456的,此语句中需要写自己的密码(我创建实例中设的root密码是123456,自己创建实例时密码根据个人兴趣设定即可)。

alter user 'root'@'%' identified with mysql_native_password by '123456';
select host,user,plugin,authentication_string from user;
flush privileges;

注:在docker中的mysql中语句界面,先输入exit;或quit;退出sql命令模式到mysql账号处,再在mysql账号处输入exit;退出到linux用户处。
8.
linux服务器中配置docker开机自启(linux一开,docker就开):

systemctl enable docker.service

docker中配置mysql开机自启(docker一开,mysql就开):

docker update --restart=always mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征程123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值