Linux安装mysql并远程连接的两种方式(本地+docker)

linux本地



1.下载mysql

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
在这里插入图片描述
这里我没有下载 提供另一个版本的

链接:https://pan.baidu.com/s/1OHiE8Ni7_ytueelSv1lVMA
提取码:bbbb
在这里插入图片描述

觉得怎么方便怎么来吧

若链接失效了 及时评论提醒我哦

2. 上传并解压

创建对应的目录

mkdir mysql

解压缩

 tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

ps: linux自带mariadb数据库 与mysql冲突 先要卸载

查询mariadb

rpm -qa |grep mariadb

在这里插入图片描述

卸载mariadb

rpm -e --nodeps mariadb-libs

查看目录
在这里插入图片描述

3. 安装mysql

注意 依次执行 不同版本的 安装 common libs client server 安装就可以了

 rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
 rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
 rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
 rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

4. 启动mysql

systemctl start mysqld.service

设置root用户密码

默认他就是带密码的 所以要根据那个密码进行修改

查询root密码

grep "password" /var/log/mysqld.log

在这里插入图片描述
后面的那串就是密码

使用 mysql -u -p密码进入(p后面不带空格)

5. 设置新密码

mysql有几个密码策略 默认是最高的 所以不想弄这么复杂 需要修改策略
在这里插入图片描述

修改策略

set global validate_password_policy=0;

设置密码长度

默认密码长度8位 最小四位

set global validate_password_length=4;

设置密码

set password=password('123456');

刷新权限

flush privileges;

6.远程连接数据库

设置远程连接密码

如果密码设置的不同 123456也需要做更改

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

防火墙设置

两个办法 关闭防火墙(生产环境勿用) 或者打开对应端口3306 都可以

1.关闭防火墙 简单粗暴

systemctl stop firewalld

2.打开防火墙对应端口

firewall-cmd --permanent --add-port=3306/tcp
相当于刷新操作
firewall-cmd --reload
查询是否开启
firewall-cmd --query-port=3306/tcp

ps:若修改了密码 远程连接的设置也要做相应的修改

7. 数据库文件配置

默认的也行 配置了更好

编辑文件my.cnf

vim /etc/my.cnf

在[mysqld]下面配置几行

lower_case_table_names=1       #配置表名不区分大小写 1:不区分大小写 0:区分大小写  这行必须配置 默认表名是区分大小写的,不利于开发
character-set-server=utf8          #设置为默认编码为utf8
init_connect='SET NAMES utf8'
max_connections=1024             #设置最大连接数

重启mysql 重启配置才能生效

service mysqld restart





docker安装mysql


既然会用docker了 安装就不讲了 ## 安装mysql
docker pull mysql:5.7

运行容器

–name指定容器名字
-v目录挂载 -p指定端口映射
-e设置mysql参数
-d后台运行
挂载到外部 外部一修改 里面也会修改
-v 外部地址 : 内部地址

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL\_ROOT\_PASSWORD=123456 \
-d mysql:5.7

如下 在该目录下创建了三个文件
在这里插入图片描述

进入容器

docker exec -it mysql /bin/bash
#进入mysql
mysql -u root -p123456

在这里插入图片描述

设置mysql随docker启动而启动

docker update --restart=always mysql

1)在使用docker run启动容器时,使用–restart参数来设置:

–restart具体参数值详细信息:

   no -  容器退出时,不重启容器;

   on-failure - 只有在非0状态退出时才从新启动容器;

   always - 无论退出状态是如何,都重启容器;

还可以在使用on - failure策略时,指定Docker将尝试重新启动容器的最大次数。默认情况下,Docker将尝试永远重新启动容器。

docker run --restart=on-failure:10 mysql

2)如果创建时未指定 --restart=always ,可通过update 命令

docker update --restart=always xxx如mysql

编辑对应的my.cnf文件

vim /mydata/mysql/conf/my.cnf 


[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
default-time_zone = '+8:00'

测试远程连接
在这里插入图片描述

如果失败 关闭防火墙 云服务器要打开对应的安全组哦!

在你还年轻的时候,你的选择没有对错之分,所有的选择都是对的,对于选择的结果,只是好与更好的差别

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要让CentOS 7上的Docker安装MySQL可以远程连接,需要进行以下步骤: 1. 首先,确保CentOS 7上已经安装DockerDocker Compose。可以通过运行以下命令来检查它们的版本: ``` docker version docker-compose version ``` 2. 下载MySQLDocker镜像并生成一个新的容器。可以运行以下命令来完成此步骤: ``` docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql:latest ``` 3. 在此步骤中,注意将`your_password`替换为您自己设置的密码。此命令会创建一个名为`mysql`的容器,并将MySQL的默认端口3306映射到主机的3306端口。 4. 检查Docker容器是否正在运行,并且3306端口是否已被监听。可以使用以下命令来检查它们: ``` docker ps netstat -tuln | grep 3306 ``` 5. 确保CentOS 7防火墙已正确配置以允许从远程访问MySQL的3306端口。可以使用以下命令来打开3306端口: ``` firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` 6. 现在,可以从远程机器使用MySQL客户端连接到CentOS 7上的Docker中运行的MySQL实例。使用以下命令连接到MySQL服务器: ``` mysql -u root -p -h your_server_ip ``` 请注意将`your_server_ip`替换为CentOS 7主机的IP地址,将提示输入密码即可。 通过执行以上步骤,您应该能够远程连接CentOS 7上运行的Docker MySQL实例。 ### 回答2: 当在CentOS 7上使用Docker安装MySQL时,可能会遇到无法远程连接的问题。以下是一些可能的解决方法: 1. 检查Docker容器网络设置:确认Docker容器是否使用正确的网络模式。可以使用`docker ps`命令查看容器的详细信息,确认容器是否使用了`--network`参数或正确的`network_mode`设置。 2. 检查MySQL配置文件:在Docker容器内部,打开MySQL配置文件`/etc/mysql/my.cnf`,确保`bind-address`设置为`0.0.0.0`,允许所有IP访问数据库。 3. 检查容器端口映射:通过`docker ps`命令查看MySQL容器的端口映射情况,确保将MySQL容器的端口映射到正确的主机端口上。例如,如果容器内部的MySQL端口是3306,则可以通过`docker run`命令的`-p`参数将其映射到主机上的端口。 4. 防火墙配置:如果在主机上启用了防火墙,可能需要打开MySQL所用的端口。可以使用以下命令将3306端口添加到防火墙规则中: ``` sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 5. 检查MySQL用户权限:确保在MySQL容器中,用户拥有远程连接MySQL的权限。可以通过以下命令登录MySQL容器: ``` docker exec -it <mysql_container_id> bash mysql -u root -p ``` 然后在MySQL命令行中,执行以下命令检查用户权限: ``` SHOW GRANTS FOR '<username>'@'%' ; ``` 如果没有远程连接权限,可以通过以下命令为该用户添加权限: ``` GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 6. 检查主机网络连接:确保从远程主机可以ping通CentOS 7主机的IP地址。如果ping不通,可能是网络配置的问题,需要检查网络设置和路由。 希望以上解决方法能够帮助你解决无法远程连接的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值