步骤1:准备工作 - 清场与开门
检查旧版本 (避免冲突):
sudo rpm -qa|grep mysql
# 查看系统已安装的mysql相关包
注释:rpm -qa列出所有已安装包,grep mysql过滤出名字含mysql的。如果看到有 mysql-*或 mariadb-*(MariaDB是MySQL的一个分支),强烈建议先卸载干净!(新手坑点1:残留旧版本导致冲突)
如果发现旧包,卸载命令:
sudo rpm -e --nodeps <包名1> <包名2> ...
# 强制卸载,忽略依赖(谨慎,确保知道在做什么) # 例如: sudo rpm -e --nodeps mysql-community-libs-8.0.30-1.el8.x86_64
注释:--nodeps表示强制卸载,即使有依赖关系。卸载后最好 sudo reboot重启一下系统更干净。
MySQL官方提供了二进制安装包可以在Linux系统下通用。无论是基于Debian的Ubuntu系列还是Redhat系列的CentOS是可以,终于可以只用专注一种安装方式了。
ubuntu系统 执行 sudo -i 切换到root 方便操作
查看系统是否支持glibc2.28
因为安装的版本比较新需要新版glic2.28
redhat、centos系列使用以下命令
strings /lib64/libc.so.6 | grep GLIBC_2.28
有输出版本号证明支持
移除旧版本
如果你安装过mysql 为了防止出现奇奇怪怪问题,我们把旧版本卸载删除相关包和残留文件
redhat、centos系列使用yum命令
# yum 查询已安装的 MySQL 相关包
rpm -qa | grep -i mysql
# 卸载 MySQL 相关包
yum remove mysql-*
# 卸载完再查询还有无相关包
rpm -qa | grep -i mysql
debian、ubuntu系列使用apt命令
# 卸载mysql相关
apt-get remove --purge mysql-*
# 清除残留
apt-get autoremove
apt-get autoclean
删除相关配置文件和安装目录
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf /etc/mysql
安装mysql依赖
安装mysql所需要的依赖
redhat、centos系列使用安装必备依赖(libaio、libtirpc、ncurses、openssl 等)
sudo dnf -y install libaio libaio-devel libtirpc libtirpc-devel \
ncurses ncurses-devel openssl openssl-devel perl-Data-Dumper
debian、ubuntu系列使用apt命令
apt-get install libaio1
MySQL ::下载 MySQL Community Server
选择系统、版本、glic版本后,下载包缩包 注:如果不知道该选什么glic版本,可以运行命令: ldd --version
输出:ldd (GNU libc) 2.34
表示该机的glic版本是:2.34 下载并上传安装包如果你还没下载安装包,可直接在服务器上用wget下载(或通过宝塔面板上传到/tmp目录) 解压安装包
- wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz -P /tmp
复制代码
二、安装 MySQL 8.0.39MySQL 通常安装在/usr/local目录,解压并创建软链接(方便后续升级):
- # 解压
- sudo tar -xvf /tmp/mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
- # 重命名为mysql(或创建软链接)
- sudo mv /usr/local/mysql-8.0.39-linux-glibc2.28-x86_64 /usr/local/mysql
复制代码 创建 MySQL 用户和组
避免用 root 运行 MySQL,创建专用用户:
- sudo groupadd mysql
- sudo useradd -r -g mysql -s /sbin/nologin mysql # -r表示系统用户,无登录权限
复制代码 初始化数据库
生成数据目录和初始配置(记录临时密码,后续会用到):
- # 进入MySQL安装目录的bin目录
- cd /usr/local/mysql/bin/
- # 初始化(--initialize表示生成临时密码,--user指定运行用户)
- sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
复制代码 执行后会输出一段日志,其中包含临时密码(类似:A temporary password is generated for root@localhost: xxxxxxx),记录下来。
三、配置 MySQL 服务新建/etc/my.cnf(MySQL 默认读取的配置文件),内容如下:
写入:- [mysqld]
- # MySQL安装目录
- basedir = /usr/local/mysql
- # 数据目录(初始化时指定的datadir)
- datadir = /usr/local/mysql/data
- # 服务端生成的socket文件路径(必须与客户端一致)
- socket = /usr/local/mysql/data/mysql.sock
- # 端口(默认3306,避免冲突)
- port = 3306
- # 字符集(推荐utf8mb4,支持emoji)
- character-set-server = utf8mb4
- collation-server = utf8mb4_general_ci
- # 错误日志路径(必须存在且有权限)
- log-error = /usr/local/mysql/data/mysqld.log
- # 进程ID文件路径
- pid-file = /usr/local/mysql/data/mysqld.pid
- [client]
- # 客户端连接时使用的socket路径(必须与服务端一致)
- socket = /usr/local/mysql/data/mysql.sock
- # 客户端字符集
- default-character-set = utf8mb4
复制代码 保存退出(esc + :wq)。
创建系统服务(方便启停)
让 systemd 管理 MySQL 服务,创建服务文件:
- sudo vim /usr/lib/systemd/system/mysql.service
复制代码 写入- [Unit]
- Description=MySQL Server
- After=network.target
- [Service]
- User=mysql
- Group=mysql
- Type=forking
- ExecStart=/usr/local/mysql/support-files/mysql.server start
- ExecStop=/usr/local/mysql/support-files/mysql.server stop
- ExecReload=/usr/local/mysql/support-files/mysql.server reload
- PrivateTmp=true
- [Install]
- WantedBy=multi-user.target
复制代码 保存退出。
重载服务并启动 MySQL
- # 重载systemd配置
- sudo systemctl daemon-reload
- # 启动MySQL
- sudo systemctl start mysql
- # 设置开机自启
- sudo systemctl enable mysql
复制代码
初始化安全配置使用初始化时的临时密码登录:
- <div class="content-y8qlFa code-content light-scrollbar-FFk5j5"><pre class="container-S2LAkl language-bash"><code class="language-bash"><span class="token comment"># 进入bin目录(或配置环境变量,见步骤5)</span>
- <span class="token builtin class-name">cd</span> /usr/local/mysql/bin/
- ./mysql <span class="token parameter variable">-u</span> root <span class="token parameter variable">-p</span></code></pre></div>
复制代码 输入临时密码后,执行以下命令修改密码(替换新密码为你的密码):
- ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 密码需包含大小写、数字、特殊字符
- flush privileges; # 刷新权限
复制代码 配置环境变量(可选)为了在任意目录使用mysql命令,添加环境变量:
- sudo vim /etc/profile.d/mysql.sh
复制代码 写入:
export PATH=$PATH:/usr/local/mysql/bin
保存后生效:
- source /etc/profile.d/mysql.sh
复制代码 防火墙 & SELinux(如果启用)- # 开放 3306 端口
- sudo firewall-cmd --add-port=3306/tcp --permanent
- sudo firewall-cmd --reload
- # 临时关闭 SELinux 进行测试(生产环境建议设为 permissive 或自行编写策略)
- sudo setenforce 0
- # 若需要永久宽松模式:
- sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
复制代码 验证安装- mysqladmin -u root -p version
- # 或
- mysql -u admin -p -e "SELECT VERSION();"
复制代码 输出应为 8.0.39,说明安装成功。
六、与宝塔面板关联(可选)
如果需要在宝塔面板中管理该 MySQL:
- 登录宝塔面板,进入「数据库」页面。
- 点击「添加数据库」,选择「已有数据库」,填写 MySQL 的连接信息(地址127.0.0.1,端口3306,root 账号和密码)。
按以上步骤操作,即可完成 MySQL 8.0.39 的手动安装。
设置配置文件
配置文件位于 /etc/my.cnf
创建配置文件
gedit /etc/my.cnf
文件中写入以下内容(配置文件根据自己需要调整)
|