docker安装mysql8实战

前置条件,如果宿主机开了iptable,要先开放3306端口
vi /etc/sysconfig/iptables
在iptables中开放3306端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
重启iptables服务
service iptables restart
重启docker
systemctl restart docker

开始mysql安装
1、拉取mysql 8.0.27版本的镜像
docker pull mysql:8.0.27
2、创建数据目录和配置文件
mkdir -p /mysoft/mysql/ywzx/3306/conf /mysoft/mysql/ywzx/3306/data /mysoft/mysql/ywzx/3306/mysql-files
chmod -R 755 /mysoft/mysql/
3、在/mysoft/mysql/ywzx/3306/conf下创建自定义的配置文件my.cnf

my.cnf的内容如下:

[client] #客户端连接配置
#设置客户端编码
default-character-set = utf8mb4

[mysqld] #服务端配置
# ---------------- 基础配置 ----------------
#设置服务端编码,utf8mb4是utf8的超集,支持特殊文字,且一个字符最大可占4个字节存储空间,现在mysql基本是用这个编码集
character_set_server = utf8mb4
collation_server = utf8mb4_bin
#默认存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读、同时被设计用来最有效的利用以及使用内存和CPU
default-storage-engine = InnoDB
#表名不区分大小写
lower_case_table_names = 1

# ---------------- 连接数、处理文件数配置,用于优化连接 ----------------
# 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)
interactive_timeout = 1800
# 服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,默认值:28800秒(8小时)
wait_timeout = 1800
#MySQL的最大连接数,如果请求量比较大,建议调高此值增加并行连接数量,开销越多的内存,16G内存推进配置800到1000。
max_connections = 1024
#对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。一般设置max_connections的10倍
max_connect_errors = 10240
#以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。
back_log = 600
#打开的文件描述符限制,默认最小1024;当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。
open_files_limit = 10240
#每打开一个表,会读入一些数据到table_open_cache缓存中,缓存中找不到相应信息时,会去磁盘上读取。默认值64。很大时,系统处理不了,会出现客户端失效,连接不上
table_open_cache = 1024


4、启动创建容器
docker run --restart=unless-stopped -d --name mysql_ys_ywzx -v /mysoft/mysql/ywzx/3306/conf/my.cnf:/etc/mysql/my.cnf -v /mysoft/mysql/ywzx/3306/data:/var/lib/mysql -v /mysoft/mysql/ywzx/3306/mysql-files:/var/lib/mysql-files/ -v /etc/localtime:/etc/localtime:ro -p 3306:3306 -e MYSQL_ROOT_PASSWORD=自定义密码 mysql:8.0.27
5、查看容器创建的情况
docker ps -a
6、进入容器内部
docker exec -it mysql_ys_ywzx /bin/bash
7、连接 mysql
mysql -uroot -p自定义密码
8、使用mysql库
use mysql
9、修改访问主机以及密码等,设置为所有主机可访问
#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义密码' PASSWORD EXPIRE NEVER;
修改加密方式
alter user 'root'@'localhost' identified with mysql_native_password by '自定义密码';
给用户赋予远程登录权限
update user set Host = '%' where User = 'root';
修改加密方式不一样,再次重新设置密码
alter user 'root'@'%' identified with mysql_native_password by '自定义密码';
刷新权限
flush privileges;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值