一、安装mysql
- 查询mysql
docker search mysql
- 下载需要的版本
docker pull mysql:tag
tag代表版本号,没有代表是lastest的 - 根据镜像启动容器
docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 查询mysql运行状态
docker ps
如果正常启动,就能查到如下结果
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4b69c5e900f mysql "docker-entrypoint..." 34 minutes ago Up 30 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql01
- 连接数据库
docker exec -it mysql01 bash
那个***mysql01***是设置的容器名,执行完后进入到如下的界面
[root@localhost ~]# docker exec -it mysql01 bash
root@b4b69c5e900f:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 10
Server version: 8.0.17 MySQL Community Server - GPL
- 查看mysql是否正常启动
show databases
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
出现上面的那个说明数据库已经正常启动 7. 在虚拟机外使用Navicate连接数据库可能会出现如下的异常
mysql服务设置远程连接 解决1251 client does not support ..
7.1. 查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | root | mysql_native_password | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
*z3uANJFSvbTEwhOS.Xi/Wbu7zgLBnxcUq4mjjz6uWSC |password | $A$005$xNK;^eO n"YNh.#LV
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
7.2. 修改权限和用户密码
修改权限的命令:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'
修改后再次查询: select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host | user | plugin | authentication_string |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | root | mysql_native_password | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
| % | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
*z3uANJFSvbTEwhOS.Xi/Wbu7zgLBnxcUq4mjjz6uWSC |password | $A$005$xNK;^eO n"YNh.#LV
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
7.3. 如果还是没有连接上,很有可能是防火墙的问题,在防火墙上添加3306端口