Linux下mysql 5.7 部署及远程访问配置

  • Post category:Linux

下面是“Linux下mysql5.7部署及远程访问配置”的完整攻略,分为以下几个步骤。

1. 安装MySQL 5.7

在Linux下安装MySQL 5.7,可以通过官方源或第三方源。以CentOS 7为例,使用的是官方源,安装步骤如下:

# 进入root用户
sudo su

# 下载mysql源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

# 安装mysql源
yum localinstall mysql80-community-release-el7-3.noarch.rpm

# 安装mysql服务
yum install mysql-server

# 启动mysql服务
systemctl start mysqld

# 查看mysql服务状态
systemctl status mysqld

# 自启动mysql服务
systemctl enable mysqld

2. 配置MySQL 5.7

MySQL 5.7安装完成后,需要进行一些基本配置。主要包括修改root用户密码,设置远程访问权限等。

2.1 修改root用户密码

默认安装的MySQL 5.7版本root用户没有密码,需要修改。修改步骤如下:

# 通过安全模式修改root密码
# 停止mysql服务
systemctl stop mysqld
# 启动mysql服务,并跳过权限检查
mysqld_safe --skip-grant-tables &
# 登录mysql
mysql -uroot
# 切换到mysql库
use mysql;
# 修改root密码
update user set authentication_string=password('your_new_password') where user='root';
# 刷新权限
flush privileges;
# 退出mysql
exit;
# 停止mysql服务
killall mysqld_safe

2.2 设置远程访问权限

默认情况下,MySQL 5.7只允许本地IP访问。如果需要设置远程访问权限,需要进行一些配置。

2.2.1 开放端口

如果MySQL 5.7所在的服务器上有防火墙,需要开放3306端口(默认MySQL端口),如下:

# 检查当前防火墙规则
firewall-cmd --list-all
# 开放3306端口
firewall-cmd --add-port=3306/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service

2.2.2 修改bind-address

修改MySQL配置文件/etc/my.cnf,找到[mysqld]节点,修改bind-address值为0.0.0.0或服务器公网IP地址,如下:

[mysqld]
bind-address=0.0.0.0

2.2.3 创建远程访问用户并授权

远程访问MySQL时需要使用一个具有远程访问权限的用户。创建用户并授权的步骤如下:

# 登录mysql
mysql -uroot -p
# 创建用户,并设置密码
create user 'your_username'@'%' identified by 'your_password';
# 授权该用户拥有所有数据库的所有权限
grant all on *.* to 'your_username'@'%';
# 刷新权限
flush privileges;
# 退出mysql
exit;

3. 示例说明

3.1 在本地使用命令行连接MySQL 5.7

如果想在本地连接MySQL 5.7,需要在本地安装MySQL客户端。以Ubuntu 20.04为例,安装步骤如下:

# 安装mysql客户端
sudo apt install mysql-client-core-8.0

安装完成后,通过下面的命令连接MySQL 5.7,需要将IP地址和端口号替换为实际的值。

mysql -h your_mysql_ip -u your_username -p -P your_mysql_port

3.2 在Python中连接MySQL 5.7

Python中操作MySQL需要安装Python MySQL Connector。以Python 3为例,安装步骤如下:

pip3 install mysql-connector-python

安装完成后,可以使用以下Python代码连接MySQL 5.7,需要将IP地址、端口号、用户名和密码替换为实际的值。

import mysql.connector

# 连接mysql
mydb = mysql.connector.connect(
  host="your_mysql_ip",
  port="your_mysql_port",
  user="your_username",
  password="your_password"
)

# 输出连接成功
print(mydb)

这就是“Linux下mysql5.7部署及远程访问配置”的完整攻略了。