linux-MySQL的安装
linux-MySQL的安装
- 前言
- 一、安装MySQL
- 1. 下载mysql8的rpm仓库
- 2. 安装mysql源的rpm包
- 3. 查找是否有可用的mysql源
- 4. 安装mysql服务器
- 5. 启动服务
- 二、登录MySQL
- 1. 查看临时密码
- 2. 连接MySQL
- 3. MySQL安装后的内容
- 1. 二进制文件:mysql
- 2. 数据文件
- 3. 日志文件
- 4. 配置文件
前言
MySQL 关系型数据库
Redis 非关系型数据库
Oracle 关系型数据库 -> 不开源、收费(贵)
MySQL数据库
开源:源代码开放(github),开发人员可以基于源代码进行二次修改,自己使用
MySQL由瑞典MySQL AB开发 -> 被Oracle公司收购
姐妹产品MariaDB
一、安装MySQL
基于rocky linux 9.4
卸载已经安装的数据库
# 检查安装的rpm包
rpm -qa |grep mysql
# 卸载安装的rpm包
rpm -e --nodeps <包名>
rm -rf /var/lib/mysql
1. 下载mysql8的rpm仓库
wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm
ll /etc/yum.repos.d/
总用量 32
-rw-r–r–. 1 root root 1142 8月 28 2023 epel-cisco-openh264.repo
-rw-r–r–. 1 root root 1453 8月 28 2023 epel.repo
-rw-r–r–. 1 root root 1552 8月 28 2023 epel-testing.repo
-rw-r–r–. 1 root root 6610 5月 1 2024 rocky-addons.repo
-rw-r–r–. 1 root root 1165 5月 1 2024 rocky-devel.repo
-rw-r–r–. 1 root root 2387 5月 1 2024 rocky-extras.repo
-rw-r–r–. 1 root root 3417 5月 1 2024 rocky.repo
2. 安装mysql源的rpm包
yum install mysql80-community-release-el9-4.noarch.rpm -y
[root@clone ~]# ll /etc/yum.repos.d/
总用量 44
-rw-r–r–. 1 root root 1142 8月 28 2023 epel-cisco-openh264.repo
-rw-r–r–. 1 root root 1453 8月 28 2023 epel.repo
-rw-r–r–. 1 root root 1552 8月 28 2023 epel-testing.repo
-rw-r–r-- 1 root root 2129 10月 24 2023 mysql-community-debuginfo.repo
-rw-r–r-- 1 root root 1910 10月 24 2023 mysql-community.repo
-rw-r–r-- 1 root root 1989 10月 24 2023 mysql-community-source.repo
-rw-r–r–. 1 root root 6610 5月 1 2024 rocky-addons.repo
-rw-r–r–. 1 root root 1165 5月 1 2024 rocky-devel.repo
-rw-r–r–. 1 root root 2387 5月 1 2024 rocky-extras.repo
-rw-r–r–. 1 root root 3417 5月 1 2024 rocky.repo
3. 查找是否有可用的mysql源
yum repolist enabled | grep mysql
mysql-connectors-community MySQL Connectors Community
mysql-tools-community MySQL Tools Community
mysql80-community MySQL 8.0 Community Server
4. 安装mysql服务器
yum install mysql-community-server -y
5. 启动服务
systemctl start mysqld
设置开机自启
systemctl enable mysqld
查看端口
netstat -tulnp|grep mysqld
ss -anplut|grep mysqld
tcp6 0 0 :::3308 ::: * LISTEN 841/mysqld
tcp6 0 0 :::33060 ::: * LISTEN 841/mysqld
losf -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 841 mysql 33u IPv6 42560 0t0 TCP *:mysql (LISTEN)
查看进程
ps aux|grep mysqld
mysql 841 3.5 10.8 1742080 402732 ? Ssl 15:29 0:06 /usr/sbin/mysqld
root 841 0.0 0.0 6632 2304 pts/0 S+ 15:32 0:00 grep --color=auto mysqld
二、登录MySQL
1. 查看临时密码
cat /var/log/mysqld.log |grep password
2025-06-27T02:02:36.054100Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <Zdp1AVzcmR&
使用临时密码登录
[root@localhost ~]# mysql -uroot -p
Enter password:
mysql>
修改当前用户的密码(注意密码复杂度)
mysql> alter user user() identified by “设置复杂密码”;
Query OK, 0 rows affected (0.02 sec)
2. 连接MySQL
帐号+密码+ip+端口 => 网络socket
mysql -uroot -h127.0.0.1 -P3306 -p
mysql -uroot -p
文件scoket: 实现一台电脑里不同进程之间的通信
mysql -uroot -S /var/lib/mysql/mysql.sock -p
3. MySQL安装后的内容
1. 二进制文件:mysql
ll /usr/sbin/mysql*
-rwxr-xr-x. 1 root root 64945536 3月 31 21:38 /usr/sbin/mysqld => mysql服务端
ll /usr/bin/mysql*
-rwxr-xr-x. 1 root root 7743824 3月 31 21:38 /usr/bin/mysql => mysql客户端
-rwxr-xr-x. 1 root root 7429800 3月 31 21:38 /usr/bin/mysqladmin
-rwxr-xr-x. 1 root root 7892432 3月 31 21:38 /usr/bin/mysqlbinlog
2. 数据文件
默认位置/var/lib/mysql
Mysql将数据库(目录)、表(文件)数据存在在这个目录下
系统数据库
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+
4 rows in set (0.01 sec)
- information_schema: 信息数据库,存储了MySQL数据库各种数据对象的元数据信息
- mysql: 用户帐户信息、权限、帮助、日志
- performance_schema: 性能相关数据,查询执行情况,锁使用情况,内存使用情况,文件I/O等…
- sys: 基于 performance_schema 的便捷视图,用于性能分析
3. 日志文件
- 错误日志、常规日志(数据库启动、运行过程中出现错误常规信息,用来排错)
/var/log/mysqld.log - 二进制日志(记录对数据库的更改操作,数据恢复和复制)
- 查询日志(记录所有的SQL查询,审计)
4. 配置文件
/etc/my.cnf
[mysqld] => 配置服务端
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql] => 配置客户端
如何修改配置文件
- 创建目录
mkdir /data/mysql -p
# 因为mysql进程是用mysql用户启动并管理,所以/data/mysql目录需要写权限
chown mysql:mysql /data/mysql/ -R
- 修改数据目录
[root@localhost performance_schema]# cat /etc/my.cnf|grep -v “#”
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
# 端口号
port=3308
# 错误日志
log-error=/data/mysql/mysqld3308.err
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
# 启用自动补全功能
auto-rehash
#自定义客户端提示符的格式,显示内容为:
\u:当前登录的用户名
\d:当前使用的数据库(若未选择数据库则显示 none)
\R:\m:当前时间(小时:分钟)
prompt=\u@\d \R:\m>
- 改了配置文件需要重启mysql服务
systemctl restart mysqld
启动服务失败分析
[root@localhost ~]# mysql -uroot -P3308 -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
启动服务失败查找线索:
1.看 log-error => /data/mysql/mysqld3308.err
2.journalctl -xe
临时关闭selinux
setenforce 0
配置永久关闭
[root@localhost ~]# vim /etc/selinux/config
SELINUX=disabled
- 验证