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