编译安装 Mysql8和Mysql5

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

此方法可以同时适用于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)如果已经自定义mysqldata数据目录位置不在“/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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值