linux小白成长之路8————访问Docker中的mysql

时间:2023-03-08 22:09:24
linux小白成长之路8————访问Docker中的mysql

【内容指引】
本篇实战演示如何操作Docker中的mysql数据库,包含以下五个知识点:
登录容器;
登录mysql;
运行SQL指令创建数据库;
退出mysql;
退出容器;

1.登录容器

我们在上一篇中运行过如下指令:
docker run --restart=always --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

运行后在Docker中产生了一个名为“first-mysql”的Mysql容器。我们使用登录容器的指令登录到这个容器:docker exec -it first-mysql bash

linux小白成长之路8————访问Docker中的mysql

2.登录mysql

上面运行容器时有一个参数“-e MYSQL_ROOT_PASSWORD=123456”,所以该数据库的用户名为root,密码为123456。登录指令为:mysql -u root -p
回车后根据提示输入密码:123456

linux小白成长之路8————访问Docker中的mysql

3.运行SQL指令创建数据库

现在可以使用SQL指令操作数据库了,以创建一个名为“test”的数据库为例:
指令:CREATE DATABASE IF NOT EXISTS test;
创建后通过指令查看该数据库是否已存在:show databases;

linux小白成长之路8————访问Docker中的mysql

4.退出mysql

指令:quit

linux小白成长之路8————访问Docker中的mysql

5.退出容器

指令:exit

linux小白成长之路8————访问Docker中的mysql

现在回到CentOS的终端指令输入模式了。

关于Navicat客户端连接docker中Mysql数据库报caching_sha2_password错误的解决办法
使用navicat 连接 mysql 8.0.11 报 "2059 - authentication plugin 'caching_sha2_password' ..."

linux小白成长之路8————访问Docker中的mysql

解决办法:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '数据库密码';

补充:默认docker版mysql启动后数据库连接数太少,约100,可用下面方法改为3000:

建立一个my.cnf文件,内容如下:

[mysqld]

max_connections = 3000

拷贝到docker的/etc/mysql/conf.d目录,重启docker,登陆mysql,通过

show variables like '%max_connections%';

查询最大连接数变为3000了。