linux-MySQL的安装

发布于:2025-07-11 ⋅ 阅读:(21) ⋅ 点赞:(0)


前言

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] => 配置客户端

如何修改配置文件

  1. 创建目录

mkdir /data/mysql -p
# 因为mysql进程是用mysql用户启动并管理,所以/data/mysql目录需要写权限
chown mysql:mysql /data/mysql/ -R

  1. 修改数据目录

[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>

  1. 改了配置文件需要重启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

  1. 验证

网站公告

今日签到

点亮在社区的每一天
去签到