Stories

Detail Return Return

Docker安裝MySQL8 - Stories Detail

此處搭建好了docker環境;

1.拉鏡像

docker pull mysql:8.0.20

2.啓動

docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20

3.複製

將容器內mysql的數據配置複製到本機,後面那個路徑就是你想要映射的文件地址

docker cp mysql8:/etc/mysql /home/database/mysql8

建議授權一下文件夾 防止權限問題異常, 進入到root目錄
chmod 777 mysql8

4.刪除舊容器

docker stop mysql8 && docker rm mysql8

5.重新按以下命令啓動

docker run -p 13306:3306  --name mysql8  --privileged=true --restart=always -v /home/database/mysql8/mysql:/etc/mysql  -v /home/database/mysql8/logs:/logs  -v /home/database/mysql8/data:/var/lib/mysql  -v /home/database/mysql8/mysql/mysql-files:/var/lib/mysql-files  -v /etc/localtime:/etc/localtime  -e MYSQL_ROOT_PASSWORD=admin_DEV123 -e MYSQL_DATABASE=baosheng -e MYSQL_USER=lyc -e MYSQL_PASSWORD=lyc_DEV123 -d mysql:8.0.20

6.修改配置文件,重啓容器

進入容器並登錄,如果發現登錄不了;進入mysql8容器
docker exec -it mysql8 /bin/bash
登錄
mysql -uroot -p ,輸入密碼 如發現登錄不了. 輸入 exit 先退出容器;
進入 /root/mysql8.0.20 文件, 編輯 my.cnf, 在[mysqld]增加一行 skip_grant_tables 此時mysql是無密碼狀態
`
docker restart mysql8`

7.進入數據庫

7.1 查看庫表

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
33 rows in set (0.00 sec)

mysql>

7.2 查看用户表

mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | lyc | caching_sha2_password |
| % | root | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
6 rows in set (0.00 sec)

mysql>

因為 caching_sha2_password ,所以使用密碼登錄是不行的,需要修改

7.3 修改plugin

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'admin_DEV123';
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'admin_DEV123';
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | lyc | caching_sha2_password |
| % | root | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | caching_sha2_password |
+-----------+------------------+-----------------------+
6 rows in set (0.00 sec)

mysql>

7.4 刷新權限

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql>

Add a new Comments

Some HTML is okay.