专业的编程技术博客社区

网站首页 > 博客文章 正文

CentOS Stream 9 Docker MySQL安装配置及远程访问

baijin 2024-09-10 11:04:35 博客文章 13 ℃ 0 评论

CentOS Stream 9 设置静态IP

$ cd /etc/NetworkManager/system-connections/
 
$ vi ens33..nmconnection

>>
[connection]
id=ens33
type=ethernet
autoconnect-priority=-999
interface-name=ens33
timestamp=1665234127

[ethernet]

[ipv4]
address1=192.168.30.XXX/24,192.168.30.2
dns=114.114.114.114;8.8.8.8;
may-fail=false
method=manual

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

:wq
>>
  
$ nmcli c reload                         # 重新加载配置文件
$ nmcli c up ens33                     # 重启ens33网卡

CentOS Stream 9之Docker安装及配置

  • Docker 下载

https://download.docker.com/linux/static/stable/x86_64/

  • 解压
# 解压
tar -zxvf docker-20.10.18.tgz

# 复制到/usr/bin
cp docker/* /usr/bin
  • 注册service
$ vi /etc/systemd/system/docker.service

>>
[Unit]
 
Description=Docker Application Container Engine
 
Documentation=https://docs.docker.com
 
After=network-online.target firewalld.service
 
Wants=network-online.target
 
[Service]
 
Type=notify

# Environment=“PATH=/root/docker/:/bin:/sbin:/usr/bin:/usr/sbin”

# EnvironmentFile=-/run/flannel/docker
 
# the default is not to use systemd for cgroups because the delegate issues still
 
# exists and systemd currently does not support the cgroup feature set required
 
# for containers run by docker

ExecStart=/usr/bin/dockerd
# 开启远程API访问端口(-H 0.0.0.0:2375,端口可以任意指定,通过http://127.0.0.1:2375/info进行验证)
# ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
# ExecStart=/root/docker/dockerd –log-level=error$DOCKER_NETWORK_OPTIONS
 
ExecReload=/bin/kill -s HUP $MAINPID
 
# Having non-zero Limit*s causes performance problems due to accounting overhead
 
# in the kernel. We recommend using cgroups to do container-local accounting.
 
LimitNOFILE=infinity
 
LimitNPROC=infinity
 
LimitCORE=infinity
 
# Uncomment TasksMax if your systemd version supports it.
 
# Only systemd 226 and above support this version.
 
#TasksMax=infinity
 
TimeoutStartSec=0
 
# set delegate yes so that systemd does not reset the cgroups of docker containers
 
Delegate=yes
 
# kill only the docker process, not all processes in the cgroup
 
KillMode=process
 
# restart the docker process if it exits prematurely
 
Restart=on-failure
 
StartLimitBurst=3
 
StartLimitInterval=60s
 
 
 
[Install]
 
WantedBy=multi-user.target

:wq
>>
  • 启动服务
#添加文件权限并启动docker
chmod +x /etc/systemd/system/docker.service
#重载unit配置文件
systemctl daemon-reload
#启动docker
systemctl start docker       
#设置开机自启
systemctl enable docker.service
  • 检查状态
# 状态
systemctl status docker

# 版本
docker -v
  • 配置Docker镜像加速
$ vi /etc/docker/daemon.json

>>
{
  "registry-mirrors": [
                "http://hub-mirror.c.163.com",
                "https://registry.docker-cn.com",
                "https://docker.mirrors.ustc.edu.cn"
                ],
  "insecure-registries": ["192.168.30.222:5000"]
}

:wq
>>
  
$ systemctl daemon-reload
#启动docker
$ systemctl restart docker
  • 创建容器时出现异常
$ vi /etc/selinux/config

>>
SELINUX=disabled

:wq
>>

Docker之MySQL安装及配置

  • 下载MySQL镜像
docker pull mysql
  • 查看msql镜像
docker  images
  • 安装MySQL容器
$ mkdir -p  /home/mysql_docker/conf
$ cd /home/mysql_docker/conf
$ vi my.cnf

>>
# 服务端配置
[mysqld]
# 不使用高速缓存区来存放主机名和ip地址的对应关系
skip-host-cache
# 不把ip地址解析为主机名;与访问控制(mysql.user数据库)有关的检查全部通过IP地址行进。 
skip-name-resolve
# 忽略客户端的字符集,使用服务端的设置
skip-character-set-client-handshake
# 新数据库或数据表的默认排序方式
# unicode_ci准确性高,general_ci,性能高,但大多数情况下不会发生复杂的比较。
collation-server=utf8mb4_unicode_ci
# 新数据库或数据表的默认字符集
character-set-server=utf8mb4
init_connect='SET collation_connection =utf8mb4_unicode_ci' 
init_connect='SET NAMES utf8mb4'  
# 设置默认的时区,在docker中会少8小时,如果在创建容器时指定时区 这里可以不用配置
# default-time_zone='+8:00'
# 设置日记记录使用的时区,将它修改为系统时区,在docker中默认会差8小时(UTC)
log_timestamps=SYSTEM

# 客户端设置
[mysql]
# 设置mysql客户端默认字符集
# utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
# 如果空间不足 ,一般情况可以使用utf8
default-character-set=utf8mb4
>>
  • 配置文件映射到本地主机
docker run -di --name mysql -p 3306:3306 --restart=always -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai mysql:latest
  • 进入MySQL容器
docker exec -it mysql bash

mysql -u root -p
  • 检测时间
mysql> select now();
  • 检测日记记录是否使用的系统时区
mysql> show variables like "log_timestamps";
  • 检测字符集和字符排序是否配置成功
mysql> show variables like "char%";show variables like "%collation%";
  • MySQL远程连接
mysql> use mysql;
mysql> select host,user from user;
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;
  • MySQL指定用户授权
mysql> CREATE USER 'liuliu'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 
mysql> FLUSH PRIVILEGES;
  • Error: Public Key Retrieval is not allowed
allowPublicKeyRetrieval=true
# mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的mysql_native_password 更改为 caching_sha2_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表