目录
1、上传离线安装包mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
3、安装mysql-community-common-5.7.18-1.el7.x86_64.rpm
4、安装mysql-community-libs-5.7.18-1.el7.x86_64.rpm
5、安装mysql-community-client-5.7.18-1.el7.x86_64.rpm
6、安装mysql-community-server-5.7.18-1.el7.x86_64.rpm
1、上传离线安装包mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
6、先启动一次数据库,需要让其创建mysql.sock、mysqld.pid文件
一、rmp形式安装
可以指定数据文件位置、日志位置,不能指定安装位置。
1、上传离线安装包mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
上传至/opt下,解压:
tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
2、创建mysql用户
由于mysql数据库它自己需要使用一个名为mysql的用户。
groupadd mysql #创建名为mysql的分组
useradd mysql #创建名为mysql的用户
passwd mysql #给mysql用户设置密码
gpasswd -a mysql mysql #将mysql用户加入到mysql分组中
3、安装mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
若出现如上所示错误,执行:
yum -y remove mariadb-libs
再次安装:
4、安装mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
5、安装mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
6、安装mysql-community-server-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
若提示需要libaio.so.1,且安装libaio.so.1时提示已安装,考虑换旧版本libaio.so.1
查看已安装的libaio版本:rpm -qa | grep -i libaio
卸载:yum remove libaio-0.3.109-13.el7.i686
上传libaio-0.3.107-10.el6.x86_64.rpm离线包
安装libaio:rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
再次安装mysql-community-server-5.7.18-1.el7.x86_64.rpm
7、指定数据存放位置,修改配置文件:
mkdir /data/mysql
chmod 777 /data/mysql
vi /etc/my.cnf
配置文件内容:
[mysqld]
datadir=/data/mysql/data #由mysql自动创建,属主为mysql
socket=/data/mysql/data/mysql.sock
[client]
default-character-set=utf8
socket=/data/mysql/data/mysql.sock
[mysql]
default-character-set=utf8
socket=/data/mysql/data/mysql.sock
二、二进制文件(glibc)形式安装
可以指定安装位置、数据文件位置、日志位置。
1、上传离线安装包mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
上传至/opt下
chmod 777 /opt
2、创建mysql用户
由于mysql数据库它自己需要使用一个名为mysql的用户。
groupadd mysql #创建名为mysql的分组
useradd mysql #创建名为mysql的用户
passwd mysql #给mysql用户设置密码
gpasswd -a mysql mysql #将mysql用户加入到mysql分组中
3、解压
su mysql
tar -zxvf /opt/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /opt
mv /opt/mysql-5.7.18-linux-glibc2.5-x86_64 /opt/mysql
mkdir /opt/mysql/data
mkdir /opt/mysql/logs
exit
4、初始化数据库
su mysql
/opt/mysql/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --log-error=/opt/mysql/logs/mysqld.log --explicit_defaults_for_timestamp
exit
5、指定数据存放位置,修改配置文件
/etc/my.cnf位置是mysql通用配置,若要配单独使用,则在mysql安装路径下建立
vi /etc/my.cnf #通用配置
#vi /opt/mysql/my.cnf #独立配置,不建议,会出现.sock文件问题,目前未找到解决办法
配置文件内容:
[mysqld]
datadir=/opt/mysql/data
socket=/opt/mysql/data/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/opt/mysql/logs/mysqld.log
pid-file=/opt/mysql/data/mysqld.pid
[client]
default-character-set=utf8
socket=/opt/mysql/data/mysql.sock
[mysql]
default-character-set=utf8
socket=/opt/mysql/data/mysql.sock
6、先启动一次数据库,需要让其创建mysql.sock、mysqld.pid文件
su mysql
/opt/mysql/bin/mysqld_safe
然后kill掉mysql进程。
执行mysqld_safe时可能会卡住,不用管,只要/opt/mysql/data/mysql.sock文件正常创建了就行。反正都是要kill掉进程的。
exit
7、设置开机启动
cp /opt/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
vim /etc/rc.d/init.d/mysqld
更改
basedir=/opt/mysql
datadir=/opt/mysql/data
chmod +x /etc/rc.d/init.d/mysqld
将 mysqld 服务加入到系统服务并检测是否生效
chkconfig --add mysqld
chkconfig --list mysqld
8、配置环境变量
若要本地命令行登录mysql数据库,则可能需要配置环境变量:
vim /etc/profile
追加:
#mysql环境变量
PATH=$PATH:/opt/mysql/bin
export PATH
使环境变量生效
source /etc/profile
三、启动、停止、密码
1、启动mysql
systemctl start mysqld
2、查看mysql状态
systemctl status mysqld
3、查看默认登录密码
cat 日志路径 | grep password
4、登录
mysql -uroot -p
若提示mysql.sock文件找不到,可以指定文件位置:
mysql --socket=/opt/mysql/data/mysql.sock -uroot -p
之后按提示输入密码:
5、修改密码
5.1 rmp形式安装,有安全级别,默认安全级别必须是大写+小写+数字+特殊符号
mysql> SET PASSWORD = PASSWORD('HTht123456@');
5.2二进制文件(glibc)形式安装,没有安全级别,可随便设置
mysql> SET PASSWORD = PASSWORD('123456');
6、授权远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'HTht123456@' WITH GRANT OPTION;
注:修改密码后都要重新授权。
7、修改密码安全级别
查看现有的密码策略:
mysql> SHOW VARIABLES LIKE 'validate_password%';
参数解释:
1).validate_password_dictionary_file 指定密码验证的文件路径;
2).validate_password_length 密码最小长度
3).validate_password_mixed_case_count 密码至少要包含的小写字母个数和大写字母个数;
4).validate_password_number_count 密码至少要包含的数字个数
5).validate_password_policy 密码强度检查等级,对应等级为:0/LOW、1/MEDIUM、2/STRONG,默认为1
6).validate_password_special_char_count密码至少要包含的特殊字符数
密码强度检查等级:
0/LOW:只检查长度;
1/MEDIUM:检查长度、数字、大小写、特殊字符;
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
可以设置为只检查6位密码长度:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
到这里就可以设置简单的账户密码作测试账户了。
8、开启端口
CentOS 7 以下版本开启端口号:
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT #开放3306端口号
/etc/rc.d/init.d/iptables save #让配置文件生效
CentOS 7 及以上版本关闭防火墙:
systemctl status firewalld.service #查看防火墙状态
systemctl stop firewalld.service #临时关闭防火墙
systemctl disable firewalld.service #永久关闭防火墙