Linux-Docker-安装mysql8

x33g5p2x  于2021-10-04 转载在 Linux  
字(1.5k)|赞(0)|评价(0)|浏览(643)

Linux-Docker-安装mysql8

注意: 前提必须把linux上的docker安装好,不会的在我博客里找docker安装教程

第一步拉取镜像

docker pull mysql:8.0.16

第二步创建数据目录和配置文件

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

chmod -R 755 /usr/mysql/

第三步创建配置文件

vi /usr/mysql/conf/my.cnf

添加以下内容到上述创建的配置文件中

[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 -p 3306:3306 --name mysql8.0.16 \
 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf \
 -v /usr/mysql/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=root mysql:8.0.16

参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录
-d : 后台运行容器
-p 映射容器端口号和宿主机端口号
-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码

第五步查看容器启动

docker ps -a

上述虽然安装好了mysql,但是使用远程的Navicat连接时提示错误,不能正确连接mysql,此时需要修改按照下面说的步骤修改一下mysql的密码模式以及主机等内容才可以。

第六步修改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 'root';

注意:

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

  • 刷新
$ mysql> flush privileges

经过以上步骤,再次远程使用Navicat连接数据库时root账户就可以正常连接了。

第七步连接Navicat和创建数据库

右键本地连接

第八步创建表和添加一条数据

右键表

相关文章