1.卸载centos7中自带的mariadb(安装mysql的话,会和mariadb的文件冲突,所以需要先卸载掉mariadb)
# 查看系统中安装的mariadb
rpm -qa | grep mariadb
# 删除系统自带的mariadb
rpm -e --nodeps 【上面命令出现的文件名】
2.查看是否安装了libaio ,如没有则安装
yum list installed | grep libaio
yum install -y libaio
3.查看linux glibc版本号
ldd --version
4.查看系统位数
uname -m
5.结合第三步、第四步,选择下载mysql安装包
6.上传安装包并解压
# 解压至/usr/local目录(该目录为安装本地软件的主目录)
tar -Jxvf mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz -C /usr/local/
cd /usr/local/
mv mysql-8.0.35-linux-glibc2.17-x86_64 mysql8
7.把bin目录(该目录一般存放可执行程序)添加到环境变量
echo "export PATH=$PATH:/usr/local/mysql8/bin" >>/etc/profile
source /etc/profile
8.创建mysql用户与组(为了实现权限隔离)
# 创建用户组mysql
groupadd mysql
# 创建用户mysq(-r 创建系统用户 -g 分组)
useradd -r -g mysql mysql
9.创建存放数据和日志的目录,并赋予权限
# 创建数据、日志目录
mkdir -p /data/mysql8/datas
mkdir -p /data/mysql8/logs
#授权
chown -R mysql:mysql /data/mysql8
chmod -R 750 /data/mysql8/datas
chmod -R 750 /data/mysql8/logs
10.创建配置文件
vim /etc/my.cnf
把下面配置粘贴进配置文件,保存后退出
[mysql]
#默认字符集
default-character-set = utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql8
# 数据存放目录
datadir = /data/mysql8/datas/mysql
log-bin = /data/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir = /data/mysql8/datas/mysql
innodb_log_group_home_dir = /data/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error = /data/mysql8/logs/mysql.log
pid-file = /data/mysql8/logs/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server = utf8mb4
lower_case_table_names = 1
autocommit = 1
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
11.初始化并启动mysql
# 初始化mysql(defaults-file:指定配置文件,basedir: 指定安装目录,datadir: 指定初始化数据目录,user: 指定用户,initialize-insecure: 初始化不设置密码,若无该参数,则随机生成密码,需在 /data/mysql8/logs/mysql.log 查看)
mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8/datas/mysql --user=mysql --initialize-insecure
# 启动mysql
mysqld_safe --defaults-file=/etc/my.cnf &
#查看是否启动成功
ps -ef | grep mysql
12.连接mysql,修改密码,设置远程连接,配置防火墙
mysql -uroot
# 修改root账户的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 设置root账号的host为%,使任意主机都可以访问数据库
use mysql;
UPDATE user SET host='%' WHERE user='root';
# 刷新权限
FLUSH PRIVILEGES;
#退出
exit
# 配置防火墙,先查看mysql端口状态,再开放出去,重启防火墙
firewall-cmd --query-port=3306/tcp
firewall-cmd --add-port=3306/tcp --permanent
systemctl restart firewalld
13.开机自启动
cp /usr/local/mysql8/support-files/mysql.server /etc/rc.d/init.d/mysqld
# 赋予可执行权限
chmod +x /etc/init.d/mysqld
# 添加mysql服务
chkconfig --add mysqld
# 可用该命令查看是否开启成功,如果mysqld服务3\4\5都是开启状态就可以了
chkconfig --list
# 如果不是3\4\5不是开启状态,执行下面命令
chkconfig --level 345 mysqld on