容器方式运行Mysql8.0.26的方法

容器化运行Mysql8.0.26测试环境的方法


1. 前言

  • 之前为了好处理,都是二进制包的方式安装mysql,但是有时候需要下载和安装也比较费时费力, 今天中午在弄Oracle RAC时想着以后能够容器化方式运行Mysql数据库. 所以简单记录一下.

2. 拉取镜像和启动


1. 拉取镜像
docker pull mysql:8.0.26
2. 创建目录文件等.
mkdir -p  /mysql/cnf  /mysql/data /mysql/log /mysql/mysql-files

chmod 777 /mysql/* -R
chmod 0644 /mysql/cnf -R
# 注意 配置文件文件的权限要单独处理, 不然会有错误提示. 

添加一个配置文件, 使之符合公司的产品需求
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet = 1G
innodb_log_file_size = 30M
innodb_log_buffer_size = 256M
innodb_file_per_table = 1
innodb_buffer_pool_size=1G
#innodb_file_format=barracuda
max_connections=2000
lower-case-table-names=1
innodb_strict_mode = 0
character_set_server=utf8
secure_file_priv = 
transaction-isolation = READ-COMMITTED
default_authentication_plugin=mysql_native_password
default-time-zone = '+08:00'
#skip-grant-tables
[mysql]
prompt="\u@\h : \d \r:\m:\s>"
default-character-set=utf8 

将文件保存为: /mysql/conf/my.conf 并且设置 0644 的文件权限. 

3. 启动镜像 命令如下:
docker run --name mysql  -p 3307:3306 -v /mysql/cnf/my.cnf:/etc/mysql/my.cnf  -v /mysql/data:/var/lib/mysql  -v /mysql/log:/logs  -v /mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=貌似没用 --restart=always -d mysql:8.0.26
# 注意我改了参数, 端口号等 并且数据库自动启动相关. 

4. 登录镜像创建可以远程访问的用户权限.

docker exec -it mysql bash
输入
mysql -uroot
登录数据库
创建一个可以远程访问的有用户, 注意我这边使用了native password 所以密码创建方式是不一样的

create user 'root'@'%' identified  WITH mysql_native_password by 'Tyourpasswords';
flush privileges ;

3. 客户端登录验证.

image

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15166107.html