Linux安装MySQL

介绍了如何在Linux中安装并配置MySQL

Linux安装MySQL

本文基于Ubuntu系统演示

安装MySQL

1.在Linux中下载MySQL或用FinalShell之类的工具将MySQL安装包传入Linux中

2.然后解压MySQL到/usr/local

1
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

3.为了方便操作,将解压后的文件重命名为mysql:

1
2
cd /usr/local
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql

4.配置系统环境变量,通过vim编辑 /etc/profile 文件, 在尾部追加:

1
2
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

然后重新加载profile文件,执行命令:

1
source /etc/profile

5.注册MySQL为系统服务:

1
2
3
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 立即启动 MySQL 服务并设置开机自启动
systemctl enable --now mysql

6.初始化数据库

1
2
3
4
5
6
7
8
#创建一个用户组, 组名就叫mysql
groupadd mysql

#创建一个系统用户 mysql, 并归属于用户组 mysql 
useradd -r -g mysql -s /bin/false mysql

#初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

如果初始化数据库时提示:

1
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

安装这个依赖库即可解决,执行以下命令:

1
2
sudo apt-get update
sudo apt-get install libaio1

初始化数据库后, 会输入如下日志,在日志中就输出了MySQL中root用户的一个临时密码【记得复制出来,记录下来】:

1
2
3
4
5
2025-09-28T08:35:42.133150Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 38473
2025-09-28T08:35:42.170805Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-09-28T08:35:43.069141Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-09-28T08:35:44.905853Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: OlLxDf27tj)V
#最后这个OlLxDf27tj)V就是临时密码

启动MySQL

7.启动MySQL:

1
systemctl start mysql

可以通过systemctl status mysql查看是否启动,如下图就是启动成功

image-20250928164224908

8.连接MySQL:

1
2
#执行下方命令后输入刚刚的临时密码
mysql -uroot -p

如果提示

1
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

安装这个依赖库即可解决,执行以下命令:

1
2
sudo apt-get update
sudo apt-get install libtinfo5

如果正常连接上应该和下图差不多

image-20250928165738390

配置MySQL

9.修改root用户的密码,在MySQL中执行下方命令:

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

image-20250928170105308

注意: 这个root账号仅仅能够在本机localhost上访问,在windows上是无法访问的

如果需要在window上或其他服务器上也能远程访问,需要创建一个账号,用于远程访问的

10.创建账号,并授权远程访问,在MySQL中依次输入下方命令

1
2
3
4
5
6
#创建用户
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
#设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
#刷新权限
FLUSH PRIVILEGES;
image-20250928170733591

11.此时就可以在Windows上连接Linux中的数据库了

在Windows中使用快捷键Win + R,在弹出的窗口内输入cmd打开命令行窗口,在其中输入下方命令:

1
mysql -h192.168.xxx.xxx -P3306 -uroot -p123456

-h后面的192.168.xxx.xxx换成自己Linux系统的ip地址(可以在Linux中通过ip addr show查询,具体细节不多赘述)

-P后面的3306是MySQL的端口号,默认是3306,不放心也可以在MySQL输入show global variables like 'port';查询

输入命令后如果出现下图内容则说明连接成功

image-20250928172829986

防火墙设置

12.如果执行上面的命令后出现下方提示,则说明连接失败,因为Linux系统的防火墙,将访问拦截了

image-20250928172624784

13.开放防火墙的3306端口

1
2
3
4
5
6
7
8
#开发防火墙的3306端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重新加载
firewall-cmd --reload

#查看开放的端口号
firewall-cmd --zone=public --list-ports

Linux防火墙场景操作:

操作 指令 备注
查看防火墙状态 systemctl status firewalld 或 firewall-cmd –state
暂时关闭防火墙 systemctl stop firewalld
永久关闭防火墙(禁用开机自启) systemctl disable firewalld 下次启动,才生效
暂时开启防火墙 systemctl start firewalld
永久开启防火墙(启用开机自启) systemctl enable firewalld 下次启动,才生效
开放指定端口 firewall-cmd –zone=public –add-port=8080/tcp –permanent 需要重新加载生效
关闭指定端口 firewall-cmd –zone=public –remove-port=8080/tcp –permanent 需要重新加载生效
立即生效(重新加载) firewall-cmd –reload
查看开放端口 firewall-cmd –zone=public –list-ports

14.开放后再执行一次步骤11的操作即可

本站于2025年3月26日建立
使用 Hugo 构建
主题 StackJimmy 设计