hj_服务器操作记录02_安装单机mysql


 podman安装mysql

    https://hub.docker.com/_/mysql?tab=tags 查找mysql镜像tag ,podman search mysql --filter=stars=100 也行,

[root@iZc3hwg7f2i7mfZ ~]# podman search mysql --filter=stars=100
INDEX       NAME                          DESCRIPTION                                      STARS       OFFICIAL    AUTOMATED
docker.io   docker.io/library/mysql       MySQL is a widely used, open-source relation...  11803       [OK]        
docker.io   docker.io/mysql/mysql-server  Optimized MySQL Server Docker images. Create...  885                     [OK]
docker.io   docker.io/library/mariadb     MariaDB Server is a high performing open sou...  4492        [OK]        
docker.io   docker.io/library/phpmyadmin  phpMyAdmin - A web interface for MySQL and M...  391         [OK]        
docker.io   docker.io/library/percona     Percona Server is a fork of the MySQL relati...  565         [OK]  

     podman pull mysql:5.7.36  ,  选择dockers.io这个版本选项. podman images 

[root@iZc3hwg7f2i7mfZ ~]# podman pull mysql:5.7.36
? Please select an image: 
    registry.fedoraproject.org/mysql:5.7.36
    registry.access.redhat.com/mysql:5.7.36
    registry.centos.org/mysql:5.7.36
  ? docker.io/library/mysql:5.7.36

 运行镜像,对外暴露3307端口,密码访问

  docker run -d -p 3306:3306 --name hj_mysql -e MYSQL_ROOT_PASSWORD=root  738e7101490b(镜像ID) 

   docker exec -it e1fdcc0c5289(容器ID) /bin/bash

[root@iZc3hwg7f2i7mfZ ~]# docker images
REPOSITORY               TAG         IMAGE ID      CREATED     SIZE
docker.io/library/redis  6.2.6       aea9b698d7d1  5 days ago  116 MB
docker.io/library/mysql  5.7.36      738e7101490b  6 days ago  454 MB
[root@iZc3hwg7f2i7mfZ ~]# docker run -d -p 3306:3306 --name hj_mysql -e MYSQL_ROOT_PASSWORD=root  738e7101490b
e1fdcc0c5289140af805d7d6a00c0551776b09a49864c5d879c77f10d9e96d12
[root@iZc3hwg7f2i7mfZ ~]# docker ps
CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  17 hours ago    Up 17 hours ago    0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
e1fdcc0c5289  docker.io/library/mysql:5.7.36  mysqld                38 seconds ago  Up 37 seconds ago  0.0.0.0:3306->3306/tcp  hj_mysql
[root@iZc3hwg7f2i7mfZ ~]# docker exec -it e1fdcc0c5289 /bin/bash
root@e1fdcc0c5289:/# mysql --help
mysql  Ver 14.14 Distrib 5.7.36, for Linux (x86_64) using  EditLine wrapper
root@e1fdcc0c5289:/# mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
root@e1fdcc0c5289:/#

 [root@iZc3hwg7f2i7mfZ etc]# mkdir -p /etc/hj_mysql_5.7.36/conf
 [root@iZc3hwg7f2i7mfZ etc]# mkdir -p /etc/hj_mysql_5.7.36/data
 [root@iZc3hwg7f2i7mfZ etc]# ls |grep hj
 hj_mysql_5.7.36
 hj_redis_6.2.6
 [root@iZc3hwg7f2i7mfZ etc]# ls hj_mysql_5.7.36/
 conf data

[root@iZc3hwg7f2i7mfZ hj_mysql_5.7.36]# podman cp e1fdcc0c5289:/etc/mysql/. /etc/hj_mysql_5.7.36/conf
[root@iZc3hwg7f2i7mfZ hj_mysql_5.7.36]# ls conf/
conf.d my.cnf my.cnf.fallback mysql.cnf mysql.conf.d

查看 mysql.cnf 如下:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

  修改 /e/etc/hj_mysql_5.7.36/conf/mysql.conf.d 文件

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#设置3307端口 默认是3306
port=3307
# 设置mysql的socket目录
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid
# 允许最大连接数
max_connections=20
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

#bind-address	= 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

  移除掉运行的这个当下的mysql容器:  podman stop , podman rm

[root@iZc3hwg7f2i7mfZ conf.d]# podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  18 hours ago    Up 18 hours ago    0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
e1fdcc0c5289  docker.io/library/mysql:5.7.36  mysqld                40 minutes ago  Up 40 minutes ago  0.0.0.0:3306->3306/tcp  hj_mysql
[root@iZc3hwg7f2i7mfZ conf.d]# podman stop e1fdcc0c5289
e1fdcc0c5289
[root@iZc3hwg7f2i7mfZ conf.d]# podman rm e1fdcc0c5289
e1fdcc0c5289140af805d7d6a00c0551776b09a49864c5d879c77f10d9e96d12
[root@iZc3hwg7f2i7mfZ conf.d]# podman ps -a
CONTAINER ID  IMAGE                          COMMAND               CREATED       STATUS           PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6  redis-server /etc...  18 hours ago  Up 18 hours ago  0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
[root@iZc3hwg7f2i7mfZ conf.d]# 

  重新创建运行mysql5.7.36容器,并挂载外部配置文件 

[root@iZc3hwg7f2i7mfZ data]# podman run -d --privileged=true --name hj_mysql_5.7.36 -p 3307:3307 -v /etc/hj_mysql_5.7.36/data:/var/lib/mysql -v /etc/hj_mysql_5.7.36/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 738e7101490b
5970ebc43657b243822deb13e835e09ad67ba90894a3fda46ee1fd65e0412bf2

 navicat 连接成功~~~5.7.36~~~over

继续8.0.27安装   podman pull mysql:8.0.27    3308端口~ 有俩区别 !

 podman run -d --privileged=true --name hj_mysql_8.0.27 -p 3308:3308 -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql -v /etc/hj_mysql_8.0.27/conf:/etc/mysql -v /etc/hj_mysql_8.0.27/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 bbf6571db497

 运行这个报错日志如下:

[root@iZc3hwg7f2i7mfZ data]# podman logs d958916da39c   mysql-files这个目录也得对应创建挂载
2021-12-09 04:15:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2021-12-09 04:15:43+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-12-09 04:15:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2021-12-09 04:15:43+00:00 [Note] [Entrypoint]: Initializing database files
2021-12-09T04:15:43.437628Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 39
2021-12-09T04:15:43.454922Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-12-09T04:15:44.731431Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-12-09T04:15:46.411815Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2021-12-09T04:15:46.411843Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2021-12-09T04:15:46.534763Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2021-12-09 04:15:51+00:00 [Note] [Entrypoint]: Database files initialized
2021-12-09 04:15:51+00:00 [Note] [Entrypoint]: Starting temporary server
mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2 - No such file or directory)
2021-12-09T04:15:51.340515Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
2021-12-09 04:15:51+00:00 [ERROR] [Entrypoint]: Unable to start server.
[root@iZc3hwg7f2i7mfZ data]# 

podman run -d --privileged=true --name hj_mysql_8.0.27 -p 3308:3308 -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql -v /etc/hj_mysql_8.0.27/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 bbf6571db497   运行这个的报错日志如下: 

[root@iZc3hwg7f2i7mfZ data]# podman logs 80362aa07206    
2021-12-09 04:09:44+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2021-12-09 04:09:44+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-12-09 04:09:44+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2021-12-09 04:09:44+00:00 [Note] [Entrypoint]: Initializing database files
2021-12-09T04:09:44.231684Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 38
2021-12-09T04:09:44.233207Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2021-12-09T04:09:44.233217Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2021-12-09T04:09:44.233272Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-12-09T04:09:44.233405Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27) MySQL Community Server - GPL.
[root@iZc3hwg7f2i7mfZ data]#

 这个是因为,mysql8要求密码长度至少8位,并且至少一个字母,一个特殊字符.换成以下语句启动:

podman run -d --privileged=true --name hj_mysql_8.0.27 -p 3308:3308 -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql -v /etc/hj_mysql_8.0.27/conf:/etc/mysql -v /etc/hj_mysql_8.0.27/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=Hj123456?! bbf6571db497

[root@iZc3hwg7f2i7mfZ run]# podman images
REPOSITORY               TAG         IMAGE ID      CREATED     SIZE
docker.io/library/redis  6.2.6       aea9b698d7d1  6 days ago  116 MB
docker.io/library/mysql  5.7.36      738e7101490b  6 days ago  454 MB
docker.io/library/mysql  8.0.27      bbf6571db497  6 days ago  521 MB
[root@iZc3hwg7f2i7mfZ run]# podman run -d --privileged=true --name hj_mysql_8.0.27 -p 3308:3308 -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql -v /etc/hj_mysql_8.0.27/conf:/etc/mysql -v /etc/hj_mysql_8.0.27/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=Hj123456?! bbf6571db497
fbd5ed13e5e2d2793b3231e22ef96b7e382a1ea358dec4c01c9e8261b2b2ddec
[root@iZc3hwg7f2i7mfZ run]# podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS            PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  21 hours ago   Up 21 hours ago   0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
5970ebc43657  docker.io/library/mysql:5.7.36  mysqld                2 hours ago    Up 2 hours ago    0.0.0.0:3307->3307/tcp  hj_mysql_5.7.36
fbd5ed13e5e2  docker.io/library/mysql:8.0.27  mysqld                8 seconds ago  Up 9 seconds ago  0.0.0.0:3308->3308/tcp  hj_mysql_8.0.27

启动成功了 进入容器查看mysql也ok 但是navicat连接不上(10061 Unknown error)

[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman exec -it fbd5ed13e5e2 /bin/bash

root@fbd5ed13e5e2:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.27 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

 mysql> show global variables like 'port';
 +---------------+-------+
 | Variable_name | Value |
 +---------------+-------+
 | port | 3306 |
 +---------------+-------+
 1 row in set (0.01 sec)       这就奇怪了 端口是3306

[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman rm fbd5ed13e5e2
fbd5ed13e5e2d2793b3231e22ef96b7e382a1ea358dec4c01c9e8261b2b2ddec
[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman ps -a
CONTAINER ID  IMAGE                           COMMAND               CREATED       STATUS           PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  22 hours ago  Up 22 hours ago  0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
5970ebc43657  docker.io/library/mysql:5.7.36  mysqld                2 hours ago   Up 2 hours ago   0.0.0.0:3307->3307/tcp  hj_mysql_5.7.36
[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman run -d --privileged=true --name hj_mysql_8.0.27 -p 3308:3306 \
> -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql \
> -v /etc/hj_mysql_8.0.27/conf:/etc/mysql \
> -v /etc/hj_mysql_8.0.27/mysql-files:/var/lib/mysql-files/ \
> -e MYSQL_ROOT_PASSWORD=Hj123456?! bbf6571db497
bfba7989329ec9b5d6d950a87592216f6cd0f56cf4bd3e3f7e9b60074d251052
[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS            PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  22 hours ago   Up 22 hours ago   0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
5970ebc43657  docker.io/library/mysql:5.7.36  mysqld                2 hours ago    Up 2 hours ago    0.0.0.0:3307->3307/tcp  hj_mysql_5.7.36
bfba7989329e  docker.io/library/mysql:8.0.27  mysqld                5 seconds ago  Up 4 seconds ago  0.0.0.0:3308->3306/tcp  hj_mysql_8.0.27

按上述运行. navicat 连接成功~但是问题还是没有解决.继续探索...可能是配置文件直接复制的5.7版本的不对劲.从头来过

podman run -d -p 3306:3306 --name hj_mysql -e MYSQL_ROOT_PASSWORD=root bbf6571db497    ;

podman exec -it 6a9c3f74b8bc /bin/bash     ;

mysql --help | grep my.cnf    ;

podman cp 6a9c3f74b8bc:/etc/mysql/. /etc/hj_mysql_8.0.27/conf  ;

[mysqld]
port            = 3308         #就这加了,其他都是原本的.果真跟5.7不一样
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL

# Custom config should go here
!includedir /etc/mysql/conf.d/

podman run -d --privileged=true --name hj_mysql_8.0.27 \
-p 3308:3308 \
-v /etc/hj_mysql_8.0.27/data:/var/lib/mysql \
-v /etc/hj_mysql_8.0.27/conf:/etc/mysql \
-v /etc/hj_mysql_8.0.27/mysql-files:/var/lib/mysql-files/ \
-e MYSQL_ROOT_PASSWORD=123456 bbf6571db497

运行好了!!!  也不要密码8位了!!!

干掉再重来.去掉了 mysql-files相关 ,还是ok的.所以问题出在不能直接拷贝5.7的配置上...

[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman run -d --privileged=true --name hj_mysql_8.0.27 \
> -p 3308:3308 \
> -v /etc/hj_mysql_8.0.27/data:/var/lib/mysql \
> -v /etc/hj_mysql_8.0.27/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=123456  bbf6571db497
5757d767b83152c3a629d6cccd9cc00dfdb805e60f1e6a6c55c6fd86a7b155b6
[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS                   NAMES
d295faa7d6f2  docker.io/library/redis:6.2.6   redis-server /etc...  23 hours ago    Up 23 hours ago    0.0.0.0:6380->6380/tcp  hj_redis_6.2.6
5970ebc43657  docker.io/library/mysql:5.7.36  mysqld                3 hours ago     Up 3 hours ago     0.0.0.0:3307->3307/tcp  hj_mysql_5.7.36
6a9c3f74b8bc  docker.io/library/mysql:8.0.27  mysqld                14 minutes ago  Up 14 minutes ago  0.0.0.0:3306->3306/tcp  hj_mysql
5757d767b831  docker.io/library/mysql:8.0.27  mysqld                5 seconds ago   Up 5 seconds ago   0.0.0.0:3308->3308/tcp  hj_mysql_8.0.27
[root@iZc3hwg7f2i7mfZ hj_mysql_8.0.27]# 

    Game Over