MySQL安装,root用户远程配置,docker安装MySQL

MySQL安装,root用户远程配置,docker安装MySQL

第一、客户端

  • 安装Wampserver64 一步到位(开发、连接远程都可以)。

  • 安装MySQL Workbench 8.0 CE(连接数据库工具)

  • Navicat Premium 16

第二、Ubuntu服务端

以下是在Ubuntu上安装MySQL的详细步骤:

  1. 打开终端并更新软件包列表

    sudo apt-get update
    
  2. 安装MySQL服务器和客户端

    sudo apt-get install mysql-server mysql-client
    
  3. 在安装过程中,您将被要求创建MySQL root用户的密码。输入并记住此密码。

  4. 随后,MySQL服务器将自动启动,并且将在系统启动时启动。

  5. 检查MySQL是否正在运行

    sudo systemctl status mysql
    
  6. (可选)为MySQL设置更高的安全性 MySQL附带了一个称为mysql_secure_installation的脚本,该脚本可以帮助您进行一些初始设置以提高安全性。您可以通过以下命令启动该脚本:

    sudo mysql_secure_installation
    
  7. 连接到MySQL服务器

    sudo mysql -u root -p
    

在提示符下输入之前创建的MySQL root密码,然后按Enter键即可连接到MySQL服务器。

现在,您已经成功地在Ubuntu上安装了MySQL。
MySQL安装,root用户远程配置,docker安装MySQL_第1张图片

第三、远程连接MySQL

如果您在Ubuntu上安装了MySQL,并尝试使用MySQL Workbench 8.0 CE连接到MySQL服务器时,出现拒绝访问的错误,请按照以下步骤解决问题:

  1. 确保MySQL服务器正在运行。您可以使用以下命令检查MySQL服务器状态:
sudo systemctl status mysql
  1. 检查MySQL服务器端口是否正确配置。默认情况下,MySQL服务器使用3306端口。您可以使用以下命令检查MySQL服务器端口配置:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在文件中,找到bind-addressport选项。确保bind-address设置为127.0.0.1port设置为3306
MySQL安装,root用户远程配置,docker安装MySQL_第2张图片

  1. 检查MySQL用户和密码是否正确。请确保使用正确的用户名和密码连接到MySQL服务器。

  2. 检查防火墙设置。如果您的Ubuntu系统启用了防火墙,则需要允许MySQL服务器通过防火墙。您可以使用以下命令打开MySQL服务器所需的端口:

sudo ufw allow 3306/tcp
  1. 如果您仍然无法连接到MySQL服务器,请尝试使用telnet命令测试连接。您可以使用以下命令测试MySQL服务器的连接:
telnet localhost 3306

如果成功连接,您应该看到一些字符输出。如果连接失败,则表示MySQL服务器可能未正确配置或未启动。

希望这些步骤能够帮助您解决连接MySQL服务器的问题。

第四、ubuntu mysql如何为用户赋予远程登录的权限

如果您在Ubuntu上安装了MySQL,并且想要为用户赋予远程登录权限,可以按照以下步骤操作:

  1. 使用root用户或具有管理员权限的用户登录到MySQL服务器。
  2. 创建一个新用户,并为该用户分配密码。在这个例子中,我们将创建一个名为qianniu的用户:
CREATE USER 'qianniu'@'%' IDENTIFIED BY 'pwd123456*';
  1. 授予新用户访问权限。请注意,在这个例子中,我们将允许qianniu从任何IP地址连接到MySQL服务器。如果您只希望允许特定IP地址连接,请将%替换为相应的IP地址。
GRANT ALL PRIVILEGES ON *.* TO 'qianniu'@'%';
  1. 刷新MySQL权限表以使更改生效
FLUSH PRIVILEGES;

现在,用户qianniu已被授予从任何地方远程登录MySQL服务器的权限。请注意,这可能会降低系统的安全性,因此建议仅为必要的用户授予远程登录权限,并使用安全的密码策略来保护账户安全。

第五、修改root密码

如果您在Ubuntu上安装了MySQL,并且想要更改root用户的密码,可以按照以下步骤操作:

  1. 使用root用户或具有管理员权限的用户登录到MySQL服务器。
  2. 打开MySQL shell并连接到MySQL服务器:
mysql -u root -p
  1. 输入当前的root用户密码以登录到MySQL shell。

  2. 更改root用户密码。在此示例中,我们将更改root用户的密码为“pwd123456”:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pwd123456*';
  1. 刷新MySQL权限表以使更改生效:
FLUSH PRIVILEGES;

现在,root用户的密码已被更改为“pwd123456”。请注意,在生产环境中,请使用强密码来保护服务器的安全性。

第六、Docker安装MySQL

1先停止宿主机上的MySQL服务

如果不停止的话,会导致端口冲突,也可以直接卸载

  1. 停止 MySQL 服务:
    sudo systemctl stop mysql
  2. 卸载 MySQL:
    sudo apt-get remove --purge mysql-server mysql-client mysql-common
  3. 删除 MySQL 的配置和数据文件夹:
    sudo rm -rf /etc/mysql/ /var/lib/mysql/
  4. 清理未使用的依赖项:
    sudo apt-get autoremove

以上步骤将卸载 MySQL 并完全删除其相关文件和目录。

2安装准备

# 列出mysql进程
ps -ef | grep mysql

# 列出mysql网络
netstat -anp | grep mysql

# 查找3306端口是否被占用
sudo lsof -i:3306

3安装

  1. 获取镜像

    # 拉取镜像
    sudo docker pull mysql:5.7
    
  2. 启动mysql

    sudo docker run --name mysql -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST='%' --restart=always -d mysql:5.7
    
    1. 指定容器名:

      –name mysql

    2. 映射端口:
      -p 宿主机端口:容器端口

    3. 挂载配置文件数据卷:(宿主机目录:容器目录)

      -v /usr/local/mysql/conf:/etc/mysql/conf.d

    4. 挂载数据库数据卷:(宿主机目录:容器目录)

      -v /usr/local/mysql/data:/var/lib/mysql

    5. 指定root密码:
      MYSQL_ROOT_PASSWORD=123456

    6. 指定任意主机登录,相当于bind address:

      MYSQL_ROOT_HOST=‘%’:

    7. 跟随docker自启动:

      –restart=always

    8. 后台运行:
      -d

4验证安装是否成功?

a指令验证

# 进入容器
docker exec -it [容器id] bash

# 在容器内登录mysql
mysql -u root -p
输入密码:123456

# 查看数据
show databases;

b远程登录

MySQL安装,root用户远程配置,docker安装MySQL_第3张图片

MySQL安装,root用户远程配置,docker安装MySQL_第4张图片

5访问失败的情况

查看防火墙是否允许通过 3306 端口进行流量传输,请按照以下步骤操作:

  1. 检查系统中是否安装了防火墙。Ubuntu 系统默认使用 ufw 防火墙,您可以使用以下命令检查其状态:
sudo ufw status
  1. 如果防火墙处于活动状态,则需要添加 3306 端口的入站规则以允许外部客户端访问 MySQL。假设您希望允许来自所有 IP 地址的客户端通过 3306 端口访问 MySQL,可以使用以下命令添加入站规则:
sudo ufw allow 3306/tcp
  1. 确认入站规则已生效。您可以使用以下命令检查规则是否已添加并正确配置:
sudo ufw status numbered

此命令会列出防火墙规则及其编号。请确保已添加的规则具有正确的端口号和协议(例如,TCP 或 UDP)。

查看 Docker 容器是否在运行并使用 3306 端口,请按照以下步骤操作

  1. 使用以下命令列出当前正在运行的所有 Docker 容器:
docker ps
  1. 找到运行您的 MySQL 容器的行,并检查端口映射设置。在您的命令中,将主机的 3306 端口映射到 Docker 容器的 3306 端口:
-p 3306:3306

如果您在启动容器时使用了其他端口映射设置,则需要相应地更改以下步骤中的端口号。

  1. 获取 MySQL 容器的 IP 地址。您可以使用以下命令来获取该信息:
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql

MySQL安装,root用户远程配置,docker安装MySQL_第5张图片

  1. 运行以下命令以检查指定的 IP 地址和端口是否正在接受传入连接请求:
nc -vz <container_ip_address> 3306

请将 替换为上一步骤中获取的 MySQL 容器 IP 地址。

如果输出类似于下面的内容,则表示端口已经打开且可以被访问:

MySQL安装,root用户远程配置,docker安装MySQL_第6张图片

Connection to <container_ip_address> 3306 port [tcp/mysql] succeeded!

如果输出类似于下面的内容,则表示端口无法访问:

nc: connect to <container_ip_address> port 3306 (tcp) failed: Connection refused

以上步骤将帮助您确定 Docker 容器是否正在使用 3306 端口,并检查该端口是否能够被外部客户端连接。

你可能感兴趣的:(mysql,docker,ubuntu)