1:docker拉取mysql镜像(可有自己选择mysql版本)
[root@localhost ~]# docker pull mysql:8.0
2:Docker 中启动 MySQL 容器,可以使用以下命令:
docker run
-d
--name mysql_container
-v ./sql:/docker-entrypoint-initdb.d
-v ./mysql/conf:/etc/mysql/mysql.conf.d
-v ./mysql/log:/var/log/mysql
-v ./mysql/data:/var/lib/mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=<root_password>
-e TZ=Asia/Shanghai
mysql:8.0
2-1:宿主机通过命令需要连接容器mysql需要安装客户端
mysql -h <hostname> -P <port> -u <username> -p
linux安装mysql客户端命令如下
yum install mariadb 或者yum install mysql
centos 仅安装mysql客户端
yum update -y
yum install mysql -y
通过命令查看客户端版本号
mysql --version
2-2:如果提示ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory,就需要在创建容器的时候设置–default-authentication-plugin=mysql_native_password
docker run -d --name mysql -p 3306:3306 -v ./mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password
2-3:注意:如果要挂载mysql8的配置文件,需要设置宿主机的配置文件权限为644,不然会过滤掉该配置文件
2-4:容器挂载配置文件命令
docker run -d --name mysql -p 3306:3306 -v /opt/app/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /opt/app/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password
2-4:配置文件my.cnf(注意设置skip-grant-tables是无效的,设置lower_case_table_names=1要在容器创建前挂载,不可以动态修改数据库,不然就要清楚掉mysql数据库挂载的目录,从新生成mysql容器)
[mysqld]
lower_case_table_names=1
bind-address = 0.0.0.0
port=3306
innodb_default_row_format=DYNAMIC
innodb_log_file_size=128M
innodb_strict_mode=OFF
innodb_page_size=64k
max_allowed_packet=1024M
innodb_log_buffer_size=16M
innodb_buffer_pool_size=2G
注意:这个最好指定具体的地址,如下
docker run -d --name mysql -p 3306:3306 -v /opt/app/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password
3:解释一下上述命令中的参数:
-d 以后台模式运行容器
--name mysql_container:为容器指定一个名称(您可以根据需要自定义)
-v ./sql:/docker-entrypoint-initdb.d:将 ./sql 主机目录挂载到容器中的 /docker-entrypoint-initdb.d 目录,用于初始化数据库(可有可无)
-v ./mysql/conf:/etc/mysql/mysql.conf.d:将 ./mysql/conf 主机目录挂载到容器中的 /etc/mysql/mysql.conf.d 目录,用于配置 MySQL(可有可无)
-v ./mysql/log:/var/log/mysql:将 ./mysql/log 主机目录挂载到容器中的 /var/log/mysql 目录,用于存储 MySQL 日志(建议有)
-v ./mysql/data:/var/lib/mysql:将 ./mysql/data 主机目录挂载到容器中的 /var/lib/mysql 目录,用于存储 MySQL 数据(建议有)
-p 将本地主机的 3306 端口映射到容器内的 3306 端口。这允许你通过主机上的端口访问容器中的服务
-e MYSQL_ROOT_PASSWORD=<root_password>:设置 MySQL 的 root 用户密码。请将 <root_password> 替换为您想要设置的密码
-e TZ=Asia/Shanghai 参数设置容器的时区为 Asia/Shanghai
mysql:8.0:指定要使用的 MySQL 镜像及其版本
文章来源地址https://www.toymoban.com/news/detail-664284.html
文章来源:https://www.toymoban.com/news/detail-664284.html
到了这里,关于linux环境docker安装mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!