一、CentOS 7.9 安装 MySQL 5.7.35
1 下载地址:https://downloads.mysql.com/archives/community/
2 mysql 5.7.35 安装包上传到linux服务器
使用Xftp 或者 wget 在服务器上下载
# 推荐使用wget yun install -y wget wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
3 检查系统是否安装过mysql,如果没有略过此步骤
[root@ecs-65685 ~]# rpm -qa|grep mysql
没有任何输出说明没有安装过mysql!
如果系统自带mysql,查询所有mysql 对应的文件夹,全部删除,使用命令:
whereis mysql find / -name mysql rpm -qa| grep mysql
来查看所有mysql关联的目录,然后全部删除。
4 卸载CentOS7系统自带mariadb
查看系统自带的Mariadb,没有略过此步骤
rpm -qa|grep mariadb
卸载系统自带的Mariadb
因为centos7自带的mariadb 与mysql冲突,所以需要先卸载
yum remove mariadb-libs -y
5 删除etc目录下的my.cnf
查看 /etc 目录下有没有 my.cnf 文件,如果有,删除:
6 创建用户和组
useradd mysqlxyz -s /sbin/nologin id mysqlxyz
二、创建目录,并解压
1 创建软件目录
mkdir -p /opt/mysqlxyz/database
2 创建数据目录
mkdir -p /opt/mysqlxyz/data
3 创建日志目录
mkdir -p /opt/mysqlxyz/binlog
4 设置权限
chown -R mysqlxyz.mysqlxyz /opt/mysqlxyz/database /opt/mysqlxyz/data /opt/mysqlxyz/binlog
5 解压安装mysql安装包到 /opt/mysqlxyz/database/ 目录下
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /opt/mysqlxyz/database/
6 名字太长,修改为 mysql-5.7.35
cd /opt/mysqlxyz/database mv mysql-5.7.35-linux-glibc2.12-x86_64/ mysql-5.7.35
7 更改 mysql-5.7.35 目录下所有文件夹所属的用户组、用户以及权限
cd /opt/mysqlxyz/database/mysql-5.7.35 chown -R mysqlxyz. *
三、设置环境变量
vim /etc/profile export PATH=$PATH:/opt/mysqlxyz/database/mysql-5.7.35/bin source /etc/profile
查看版本
mysql -V
四、安装 mysql5.7.35
1 初始化系统库表(带有临时密码)
mysqld --initialize --user=mysqlxyz --basedir=/opt/mysqlxyz/database/mysql-5.7.35 --datadir=/opt/mysqlxyz/data
2 初始化系统库表(密码为空)
mysqld --initialize-insecure --user=mysqlxyz --basedir=/opt/mysqlxyz/database/mysql-5.7.35 --datadir=/opt/mysqlxyz/data
联网状态或者有yum源可以直接安装缺失的包文件:
yum install libncurses* -y
再次执行
cd /opt/mysqlxyz/data mysqld --initialize-insecure --user=mysqlxyz --basedir=/opt/mysqlxyz/database/mysql-5.7.35 --datadir=/opt/mysqlxyz/data # 安装多个mysql 把 --datadir 修改下即可,还有端口
3 配置文件设置 /etc/my.cnf
cat>/etc/my.cnf<<EOF [mysqld] user=mysqlxyz basedir=/opt/mysqlxyz/database/mysql-5.7.35 datadir=/opt/mysqlxyz/data port=3306 socket=/tmp/mysql57.sock server_id=6 [mysql] socket=/tmp/mysql57.sock [client] socket=/tmp/mysql57.sock EOF
4 启动脚本
cd /opt/mysqlxyz/database/mysql-5.7.35/support-files/ # 将服务文件拷贝到init.d下,并重命名为mysql cp mysql.server /etc/init.d/mysqld # 赋予可执行权限 可省略 chmod +x /etc/init.d/mysqld # 添加服务 chkconfig --add mysqld # 显示服务列表 chkconfig --list # 启动mysql systemctl start mysqld
5 使用 mysqladmin 修改密码
mysqladmin -uroot -p password iyuyi.xyz@gamil.com mysql -uroot -p
五、开放远程连接
localhost修改为%,使用远程连接
use mysql; select user, host from user; update user set host = '%' where user = 'root'; flush privileges;
允许远程连接 授权
use mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'iyuyi.xyz@gamil.com' WITH GRANT OPTION;
最好刷新一下权限;不刷新有可能也能生效
flush privileges;