此方法可以同时适用于mysql5和mysql8的安装
1. 卸载本机以存在的数据库
rpm -qa|grep mariadb
mariadb-5.5.65-1, el7. ×86_64
mariadb-libs-5.5.65-1.el7.x86_64
mariadb-server-5.5.65-1.el7. x86_64
rpm -qa|grep mysql
qt-mysql-4.8.7-8.el7.×86_64
akonadi-mysql-1.9.2-4.el7.×86_64
// 卸载
rpm -e --nodeps `rpm -qa|grep mariadb`
rpm -e --nodeps `rpm -qa|grep mysql`
2. 创建mysql用户
以普通用户身份运行(不可登录)
useradd -s /sbin/nologin -M mysql
3. 下载安装包并解压
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql
4. 编辑mysql配置文件 my.cnf
mkdir /usr/local/mysql/etc
vim /usr/local/mysql/etc/my.cnf
[mysqld]
port=3306
basedir=/usr/local/mysql # 设置mysql的安装目录
datadir=/usr/local/mysql/data # 设置mysql数据库的数据的存放目录,可以自定义
max_connections=10000 # 允许最大连接数
max_connect_errors=10 # 允许连接失败的次数,防止有人从该主机试图攻击数据库系统
character-set-server=utf8 # 服务端使用的字符集默认为UTF8
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
authentication_policy = mysql_native_password # mysql8使用“mysql_native_password”插件认证
# default_authentication_plugin=mysql_native_password # mysql5默认使用“mysql_native_password”插件认证
user=mysql
# skip-grant-tables # 可无密码强制登录数据库
lower_case_table_names = 1 # 表名大小写不明感,敏感为0
[mysql]
default-character-set=utf8 # 设置mysql客户端默认字符集
[client]
port=3306 # 设置mysql客户端连接服务端时默认使用的端口
default-character-set=utf8
5. 更改mysql目录下文件的属主和属组以及权限
chown -R mysql.mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/
6. 安装mysql
# 进入安装目录
cd /usr/local/mysql/bin/
# 初始安装数据库,并记录随机密码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

7. 启动mysql服务
// 进入mysql.server服务目录下并启动服务
cd /usr/local/mysql/support-files
./mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
SUCCESS!
(1)如果已经自定义mysql的data数据目录位置不在“/usr/local/mysql/”下,则需要修改mysql.server文件:\color{red}(1)如果已经自定义mysql的data数据目录位置不在“/usr/local/mysql/”下,则需要修改mysql.server文件:(1)如果已经自定义mysql的data数据目录位置不在“/usr/local/mysql/”下,则需要修改mysql.server文件:
因为Mysql服务里的 mysql.server 配置文件默认mysql数据目录是“/usr/local/mysql/data”,若是直接执行启动mysql命令则会报以下错误:

因此需要进行以下操作:
编辑 /usr/local/mysql/support-files/mysql.server 文件,在第46行和第47行,将自定义的数据目录补充完整即可。

(2)如果报这个错:\color{red}(2)如果报这个错:(2)如果报这个错:
starting MysQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
给mysql安装目录赋予权限,然后重新启动:\color{red}给mysql安装目录赋予权限,然后重新启动:给mysql安装目录赋予权限,然后重新启动:
chmod -R 777 /usr/local/mysql/
./mysql.server start
my_print_defaults: [warning] world- writable config file '/usr/local/mysql/my.cnf' is ignored.
Starting MysQL.my_print_defaults: [warning] world-writable config file '/usr/local/mysql/my.cnf' is ignored.
my_print_defaults: [warning] world-writable config file '/usr/local/mysql/my.cnf' isignored.
SUCCESS!
8. 登录mysql数据库,并修改root管理员登录密码,并配置远程登录
cd /usr/local/mysql/bin/
// 执行后,输入初始化时的随机密码,进入mysql
./mysql -u root -p
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '密码'; // mysql8设置root密码
Query OK, O rows affected (0.00 sec)
// 直接重置root密码(或mysql5设置root密码):set password for 用户名@localhost = password('新密码');
// 修改root密码:update mysql.user set authentication_string = password ('新密码') where user = 'root' and host = 'localhost';
mysql> flush privileges;
Query OK, 0 rows affected (0,01 sec)
// 根据环境需要,自行确定是否需要开启远程连接
mysql> use mysql;
Query OK, 0 rows affected (0,02 sec)
mysql> select user,host,plugin from user;
+---------------+-----------+-----------------------+
| user | host | plugin |
+---------------+-----------+-----------------------+
| root | localhost | mysql_native_password |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
+---------------+-----------+-----------------------+
mysql> update user set user.Host='%' where user.User='root';
Query OK, 0 rows affected (0,03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0,04 sec)

9. 添加mysql服务命令环境变量
修改配置文件/etc/profile,加入下面这句内容
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
刷新环境变量,使之立即生效
source /etc/profile
10. 设置MySQL服务开机自启并重启服务
# 停止MySQL服务
cd /usr/local/mysql/support-files/
./mysql.server stop
# 将mysql添加到系统进程中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 设置mysql开机自启
/sbin/chkconfig mysql on
# 查看服务
chkconfig --list

# 启动mysql服务
systemctl start mysql
# 关闭mysql服务
systemctl stop mysql
# 重启mysql服务
systemctl restart mysql
# 查看mysql服务状态
systemctl status mysql

本文档详细介绍了如何在Linux系统中编译安装MySQL 5和8,包括卸载旧数据库、创建mysql用户、下载安装包、编辑配置文件、设置权限、安装服务、启动和配置MySQL,以及设置开机自启。通过这些步骤,你可以同时安装和配置两个不同版本的MySQL。
1929

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



