一、安装MySQL前的准备
首先确定你要安装在哪里: 远程服务器 or 本机电脑。如果你要安装在远程服务器上,就先登陆远程服务器;如果要安装在本机电脑上,直接打开终端;然后输入以下命令先查看是否已经安装过了mysql:
# 如果存在则可能返回:mysql-libs-5.1.73-5.el6_6.x86_64
rpm -qa | grep mysql
# 如果存在则可能返回:mariadb-libs-5.5.44-2.el7.centos.x86_64
rpm -qa|grep mariadb
如果两条命令都有返回,说明已经安装过mysql,如果不符合你的版本等需求,就需要先卸载再安装新的mysql。卸载mariadb-libs包:
# 删除 mariadb-libs 包
sudo yum remove mariadb-libs
mariadb-libs-5.5.68-1.el7.x86_64 是 MariaDB 的共享库文件包。MariaDB 是 MySQL 的一个分支版本,在一些 Linux 发行版(如 CentOS/RHEL)中作为默认的 MySQL 替代品预装。如果你打算安装官方的 MySQL,通常建议先删除这个包。【mysql的卸载暂不介绍】
以上完成后,开始进入安装环节:
二、下载MySQL包,输入以下命令(二选一即可):
- 推荐:使用官方rpm包直接安装
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
优点: 官方推荐且自动完成所有配置
- 手动创建 repo 文件
sudo tee /etc/yum.repos.d/mysql-community.repo << EOF
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.mysql.com/RPM-GPG-KEY-mysql
EOF
优点:
- 过程透明,可以看到具体配置内容
- 可以根据需要修改配置
- 直接创建配置文件,不需要下载 rpm 包
缺点:
- 可能会漏掉一些官方 rpm 包中包含的其他配置
- 需要手动确保配置内容正确
- 没有自动导入 GPG 密钥
三、安装MySQL 服务器
安装命令二选一:
sudo yum install mysql-community-server
- 基本安装命令
- 会提示确认安装
- 会验证 GPG 签名
- 使用默认启用的仓库
- 更安全的做法
或者:
sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
-
-y:自动确认所有提示
–enablerepo=mysql80-community:明确指定使用 mysql80 仓库
–nogpgcheck:跳过 GPG 签名检查 -
安装过程更快
-
适合自动化脚本
-
可以解决一些 GPG 密钥问题
-
跳过安全验证
-
不够安全
-
看不到将要安装什么包
安装成功后运行以下命令,查看MySQL版本号 or 查看是否安装成功:
mysql -V
如果返回即表示安装成功,即可看到版本信息:
mysql Ver 8.xxxx for Linux on x86_64 (MySQL Community Server - GPL)
四、MySQL安全性配置
- 启动并设置开机自启动MySQL服务。
# 启动服务
sudo systemctl start mysqld
# 设置开机自启
sudo systemctl enable mysqld
# 检查服务状态
sudo systemctl status mysqld
- 获取root用户的临时密码。
sudo grep 'temporary password' /var/log/mysqld.log
返回:
2024-10-28T09:27:18.470008Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: [你的临时密码]
- 运行安全配置向导:
sudo mysql_secure_installation
该命令执行后,会弹出以下一系列问题,根据实际情况选择即可,或者都输入y 或者 Y,即选Yes就行:
- 设置 root 密码(必须包含大小写字母、数字和特殊字符)
- 删除匿名用户
- 禁止 root 远程登录
- 删除测试数据库
- 刷新权限表
五、远程访问MySQL数据库,即新建用户和密码:
- 登录mysql:
mysql -u root -p
- 依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。
# 创建新用户并授权(用于远程连接)
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%';
FLUSH PRIVILEGES;
# 如果需要修改密码策略(可选)
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=6;
- 修改配置文件(/etc/my.cnf):
如果有需要可以修改配置文件,否则,完成2后,输入exit退回mysql即可。
[mysqld]
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 默认存储引擎
default-storage-engine=INNODB
# 最大连接数
max_connections=1000
# 查询缓存大小
query_cache_size=64M
# InnoDB 缓冲池大小(根据服务器内存调整)
innodb_buffer_pool_size=1G
# 日志配置
slow_query_log=1
slow_query_log_file=/var/log/mysqld-slow.log
long_query_time=2
这里要强调关于设置数据库mysql大小写敏感的问题:
- 最好在建库建表前就设置,如果不设置,默认是大小写敏感!
- 如果已有数据,改完配置后可能需要重新导入数据
如果需要设置,则在配置文件中加入这行:
# 设置大小写敏感:0 = 大小写敏感(区分大小写),1 = 大小写不敏感(不区分大小写),2 = 表名存储为给定的大小写但是以小写比较
lower_case_table_names=1
如果MySQL已经安装好了,才需要重新修改大小写敏感的问题,请看这篇文章:设置MySQL8.0为大小写不敏感
参考
在Linux实例中安装MySQL数据库(Linux实例的意思就是可以看做一个远程Linux服务器)
以及Claude.ai
1万+

被折叠的 条评论
为什么被折叠?



