阿里云和腾讯云 linux CentOS 7 下安装mysql-5.7.25详细步骤
前言提示1: 本文档讲解安装版本为mysql-5.7.25,对于非5.7.25版本,不保证适用此说明文档,因为mysql配置文件的目录位置和结构在不同版本可能有所变动(目前所知mysql-5.8系列文件结构变化就很大,不过理论上只要大版本一样,都可参考),使用此说明可能会出现找不到配置文件或者配置后不生效的情况。
前言提示2: 安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。
第一步:下载
进入到mysql官网下载自己对应版本的mysql,
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
我这里下载mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz版本
也可以进入linux后用命令下载
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
第二步:环境配置
linux连接工具:SecureCRT 8.1.4,xshell5 都可以
linux文件管理工具:WinSCP 5.14.4 ,xftp5 都可以
linux系统版本: CentOS 7.3 64位
安装源文件版本:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如有,类似
mysql-libs-5.1.52-1.el6_0.1.x86_64
那可以选择进行卸载:
-
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 // 普通删除模式
-
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64 // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
检查否存在 mariadb 数据库,如有,卸载之,卸载同上
rpm -qa | grep mariadb
如有,类似
mariadb-libs-5.5.56-2.el7.x86_64
则 卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
用WinSCP 5.14.4工具将下载的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz上传到linux服务器的/opt/mysql目录下面
第三步:安装
进入安装包所在目录,解压文件
-
cd /opt/mysql
-
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
重命名
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql-5.7.25
添加系统mysql组和mysql用户
检查mysql组和用户是否存在,如无创建
-
cat /etc/group | grep mysql
-
#类似
-
mysql:x:490:
-
cat /etc/passwd | grep mysql
-
#类似
-
mysql:x:496:490::/home/mysql:/bin/bash
以上为存在的情况,如无,执行添加命令:
-
groupadd mysql
-
useradd -r -g mysql mysql
-
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统
安装数据库
创建data目录
-
cd mysql-5.7.25
-
mkdir data
将/opt/mysql/mysql-5.7.25的所有者及所属组改为mysql
chown -R mysql.mysql /opt/mysql/mysql-5.7.25
在/opt/mysql/mysql-5.7.25/support-files目录下创建my_default.cnf
-
# For advice on how to change settings please see
-
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
-
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
-
# *** default location during install, and will be replaced if you
-
# *** upgrade to a newer version of MySQL.
-
[mysqld]
-
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
-
basedir = /opt/mysql/mysql-5.7.25
-
datadir = /opt/mysql/mysql-5.7.25/data
-
port = 3306
-
socket = /tmp/mysql.sock
-
character-set-server=utf8
-
log-error = /opt/mysql/mysql-5.7.25/data/mysqld.log
-
pid-file = /opt/mysql/mysql-5.7.25/data/mysqld.pid
拷贝,如果提示是否覆盖,y
cp support-files/my_default.cnf /etc/my.cnf
初始化 mysqld
-
cd /opt/mysql/mysql-5.7.25
-
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.25/ --datadir=/opt/mysql/mysql-5.7.25/data/
初始化完成之后,查看日志
/opt/mysql/mysql-5.7.25/data/mysqld.log
临时密码
2019-04-08T06:14:29.790033Z 1 [Note] A temporary password is generated for root@localhost: a8?DQir=T+k+
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
启动mysql服务
service mysql start
登录mysql,密码为初始密码
-
cd /opt/mysql/mysql-5.7.25
-
./bin/mysql -u root -p
修改密码
-
mysql> set password=password('123456');
-
mysql> grant all privileges on *.* to root@'%' identified by '123456';
-
mysql> flush privileges;
添加远程访问权限
-
mysql> use mysql;
-
mysql> update user set host='%' where user = 'root';
-
mysql> flush privileges;
重启mysql生效
-
service mysql stop
-
service mysql start
或
service mysql restart
安装过程中可能遇到的问题:
问题一:/etc/init.d/mysql: line 239: my_print_defaults: command not found /etc/init.d/mysql: line 259: cd: /application/mysql: No such file or directory Starting MySQL ERROR! Couldn't find MySQL server (/application/mysql/bin/mysqld_safe)
解决方法 : 首先是命令没有找到,解决方法:cp /usr/local/mysql/bin/my_print_defaults /usr/bin。然后第二个它提示你No such file or directory。你对照看一下你有没有这个路径/application/mysql/bin/mysqld_safe。
问题二:启动出现 Failed to start mysql.service: Unit mysql.service not found
解决方法: cp support-files/mysql.server /etc/rc.d/init.d/mysql 改为:[root@VM-0-14-centos support-files]# cp mysql.server /etc/rc.d/init.d/mysql