Linux环境下通过压缩包方式安装MySQL5.7
Linux环境下通过压缩包方式安装MySQL5.7
1、安装前准备
MySQL5.7的gz压缩包(可以通过wget下载 或者 直接下载到本地传输给虚拟机),点击进入下载地址
CentOS7 联网
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
ONBOOT = yes即可
[root@localhost ~]# service network restart
#防火墙(Selinux)默认是是打开的,这个你基本都是需要关闭
[root@localhost ~]# getenforce
#如果为disabled 就是已经关闭,如果enforce 就是强制的模式
#(1)不重启的头闭 [root@localhost ~]# setenforce 0 #重启电脑后失效
#(2)重启电脑的关闭 [root@localhost ~]# vi /etc/selinux/config
SELINUX=enforce 改成disabled就可以了,重启电脑,永久生效
卸载残留或者已有的MySQL
# rpm方式卸载
# 查询安装了是否mariadb , mysql
rpm -qa | grep mariadb
# 卸载mariadb
sudo rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64
# 注意,有可能mariadb要某些依赖才能卸载,要么安装完依赖再卸载,或者如下,强制卸载:
sudo rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
2.建立所需目录
在 /usr/local/
目录下建立存放MySQL的目录
mkdir /usr/local/database/mysql
将下载好的压缩包移动到自定义目录下解压,并重命名
mv /home/joshuay/mysql-5.7.35-el7-x86_64.tar.gz /usr/local/database/mysql/
cd /usr/local/database/mysql/
tar -zxvf mysql-5.7.35-el7-x86_64.tar.gz #解压
mv mysql-5.7.35-el7-x86_64 mysql57 #为解压目录重命名
mkdir mysql57/data #在mysql57新建data目录
3.添加mysql用户组,并在mysql用户组中添加mysql用户
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/database/mysql # <当前用户:当前群组> 将mysql目录的权限赋予mysql用户
4.修改 my.cnf
进入 /etc 目录下查看是否存在my.cnf (不存在也无所谓,反正也是要新建一个的)
mv my.cnf my.cnf.old
touch my.cnf # 如果不存在my.cnf,直接这步
vi my.cnf #将下面配置复制粘贴, Esc 然后 :wq 保存退出
my.cnf 配置如下
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/database/mysql/mysql57
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/database/mysql/mysql57/data
#设置mysql日志存放文件
log-error=/var/log/mysqld.log
#设置sock存放文件
socket = /var/lib/mysql/mysql.sock
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置sock存放文件
socket = /var/lib/mysql/mysql.sock
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
5.初始化MySQL
进入到 mysql57 目录使用如下命令 (注意 我们basedir和datadir不一定相同,以你的自定义路径为准)
cd /usr/local/database/mysql/mysql57
#下面是一条完整的初始化指令
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/database/mysql/mysql57 --datadir=/usr/local/database/mysql/mysql57/data
初始化成功,你会在最后一行获得root@localhost: 生成的密码(两边没有空格),记得保存
6.初始化ssl
./bin/mysql_ssl_rsa_setup #初始化
.......Supplied value : /var/lib/mysql # 如果出现这个提示,就使用以下命令新建目录
mkdir /var/lib/mysql
./bin/mysql_ssl_rsa_setup #再次初始化
7.将MySQL添加至服务,并配置其环境变量
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld on
vi /etc/profile
#根据自己路径配置变量写入文件末尾,保存退出 export PATH=$PATH:/usr/local/database/mysql/mysql57/bin
source /etc/profile
8.进入MySQL并修改密码
mysql -uroot -p #回车,然后输入前面初始化生成的密码
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
如果输入密码回车后出现下面错误,没出现就按照上面SQL改密码即可:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@localhost mysql57]# service mysqld restart
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
ERROR! MySQL server PID file could not be found!
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
[root@localhost mysql57]# vi /etc/init.d/mysqld
......将如下路径补全,保存退出
basedir=/usr/local/database/mysql/mysql57
datadir=/usr/local/database/mysql/mysql57/data
......
[root@localhost mysql57]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
注意: 如果遇到某些错误,可能还需要给mysql用户授予/var/log 和 /tmp 目录的权限