一、安装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端口