软件配置
linux系统版本:centos7.9 华为云
mysql版本:mysql-5.7.38
安装步骤
卸载MariaDB和历史MySQL
当前服务器可能已安装了MariaDB和MySQL,需要先卸载,以免后面安装时有冲突。
bash
# 查看是否已安装mariadb
[root@hecs-403280 ~]# rpm -aq|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
# 上面表示安装过mariadb,需要卸载,--nodeps表示卸载时忽略依赖
[root@hecs-403280 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
# 检查是否卸载完成,结果为空表示卸载完成
[root@hecs-403280 ~]# rpm -aq|grep mariadb
# 检查是否本地已经安装了mysql
[root@hecs-403280 ~]# rpm -qa | grep mysql
# 如果存在,卸载以前的mysql
[root@hecs-403280 ~]# rpm -e 已经存在的MySQL全名
下载及安装MySQL
下载安装包:
bash
# 在线下载
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
下载提示找不到文件时,请在浏览器访问https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7,并找到对应的版本。可能当前这个版本不存在了,找一个相近的版本即可。
华为云速度还是挺快的,安装包600多兆,我这里用了8分多钟下载完成。
解压安装包:
bash
# 解压到指定目录
[root@hecs-403280 ~]# tar -zxvf ~/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 修改文件名
[root@hecs-403280 ~]# cd /user/local
[root@hecs-403280 local]# mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
配置mysql配置文件:
bash
# 新建my.cnf文件到/etc/my.cnf
[root@hecs-403280 ~]# vim /etc/my.cnf
我这里是因为没有/usr/local/mysql/support-files/my.cnf文件所以才新建的,如果你的目录已经有my.cnf文件,直接将已存在的my.cnf文件复制到/etc/my.cnf即可。
my.cnf文件内容如下:
bash
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
创建mysql用户和组:
bash
# 新增用户组
[root@hecs-403280 ~]# groupadd mysql
# 新增用户并放入指定组
[root@hecs-403280 ~]# useradd -g mysql mysql
# 设置用户密码
[root@hecs-403280 ~]# passwd mysql
# 将mysql基础目录更改拥有者
[root@hecs-403280 ~]# chown -R mysql:mysql /usr/local/mysql/
初始化mysql数据库:
bash
[root@hecs-403280 ~]# cd /usr/local/mysql/bin/
[root@hecs-403280 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@hecs-403280 bin]# yum -y install libaio
如果执行初始化命令后,提示缺少对应的依赖,安装依赖即可,操作如下图所示:
安装完成后,再次执行初始化命令:
bash
[root@hecs-403280 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
没有报错了,记录生成的临时密码,复制出来,后面登录mysql时要用到,如下图所示:
给数据库加密:
bash
[root@localhost bin]# ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
该步骤用以支持ssl安全连接。
配置全局环境变量:
bash
[root@localhost ~]# vim /etc/profile
最后添加一行:
bash
export PATH=/usr/local/mysql/bin:$PATH
使环境变量生效:
bash
[root@localhost ~]# source /etc/profile
启动MySQL
后台运行mysql:
bash
# 启动mysql服务,&表示后台运行
[root@localhost bin]# ./mysqld_safe --user=mysql &
出现如下图所示数字,即表示启动成功。Logging...这里会阻塞,control+c退出即可。
查看mysql是否启动成功:
bash
[root@localhost bin]# ps -ef|grep mysql
如下图即表示启动成功:
登录客户端:
bash
[root@localhost bin]# ./mysql -uroot -p
Enter password: # 这里输入自动生成的密码
如下图表示登录成功:
修改密码:
bash
mysql> set password=password('新密码');
请务必不要使用简单密码,最好是通过工具生成随机密码,并保管好。
设置mysql的远程访问:
bash
mysql> grant all privileges on *.* to root@'%' identified by '新密码' WITH GRANT OPTION;
mysql> flush privileges;
注意此处的"新密码"可以与之前设置的root用户密码不同。
开放端口:
因为我的是云服务,所以开放3306端口只需要在云服务控制台配置即可,如果你需要手动配置linux暴露端口,参考下面。
bash
[root@localhost bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost bin]# firewall-cmd --reload
success
开机自启动
配置启动文件:
bash
[root@hecs-403280 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@hecs-403280 ~]# vim /etc/init.d/mysql
修改为以下内容:
bash
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
添加开机自启动服务:
bash
[root@localhost bin]# chkconfig --add mysql
# 设置mysql服务自启动
[root@localhost bin]# chkconfig mysql on
至此mysql安装完成了,愉快地玩耍吧!