知行合一

博客园 首页 新随笔 联系 订阅 管理
  371 随笔 :: 25 文章 :: 4 评论 :: 15万 阅读

安装
拉取镜像
默认拉取最新版本的镜像

$ docker pull mysql
如果要指定版本,使用下面的命令

$ docker pull mysql:8.0.16
创建数据目录和配置文件

 

在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权

$ mkdir -p /usr/mysql/conf /usr/mysql/data

$ chmod -R 755 /usr/mysql/

创建配置文件
在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf

$ vim /usr/mysql/conf/my.cnf
添加以下内容到上述创建的配置文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[client]
 
#socket = /usr/mysql/mysqld.sock
 
default-character-set = utf8mb4
 
[mysqld]
 
#pid-file        = /var/run/mysqld/mysqld.pid
 
#socket          = /var/run/mysqld/mysqld.sock
 
#datadir         = /var/lib/mysql
 
#socket = /usr/mysql/mysqld.sock
 
#pid-file = /usr/mysql/mysqld.pid
 
datadir = /usr/mysql/data
 
character_set_server = utf8mb4
 
collation_server = utf8mb4_bin
 
secure-file-priv= NULL
 
# Disabling symbolic-links is recommended to prevent assorted security risks
 
symbolic-links=0
 
# Custom config should go here
 
!includedir /etc/mysql/conf.d/

  

启动创建容器

$ docker run --restart=unless-stopped -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v 
/usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录

-d : 后台运行容器

-p 映射容器端口号和宿主机端口号

-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

执行上述命令后,执行查询容器的命令就可以看到创建的mysql容器

$ docker ps -a

修改mysql密码以及可访问主机
进入容器内部
$ docker exec -it mysql /bin/bash
连接mysql
$ mysql -uroot -p
使用mysql库
$ mysql> use mysql
修改访问主机以及密码等,设置为所有主机可访问
$ mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
注意:

mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

刷新
$ mysql> flush privileges
经过以上步骤,再次远程使用Navicat连接数据库时就可以正常连接了。

posted on   callbin  阅读(781)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示