下载rpm包
mysql下载
http://mysql.mirrors.pair.com/Downloads/
安装需要四个包就行
mysql-community-common-5.7.22-1.el7.x86_64.rpm
mysql-community-libs-5.7.22-1.el7.x86_64.rpm
mysql-community-client-5.7.22-1.el7.x86_64.rpm
mysql-community-server-5.7.22-1.el7.x86_64.rpm
安装mysql需要卸载MariaDB
因为担心Oracle把MySQL变成闭源软件
MySQL的创始人利用MySQL的源代码创建了MariaDB,MariaDB与MySQL兼容
CentOS担心使用MySQL会引来版权问题,所以改为集成MariaDB
yum remove mariadb*
yum是基于rpm的新的包管理工具,提供了更强大的功能和更好的体验!
如果没有安装numatcl支持,需要先安装numatcl支持
再依次安装
1、rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
2、rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
3、rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
4、rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
在安装mysql-community-server-5.7.22-1.el7.x86_64.rpm发现我们需要安装相应的依赖:libaio
安装依赖
再次安装mysql-community-server-5.7.22-1.el7.x86_64.rpm,安装成功!
安装结束后,启动mysql
启动指令:1、service mysqld restart
2、 systemctl restart mysqld.service
mysql重启后,会给root用户生成一个默认的密码,从日志文件中可以查看得到:
MySQL5.7为root用户随机生成了一个密码,打印在error_log中,关于error_log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log 。
于是我们可以在mysqld.log
中找到初始密码串:
cat /var/log/mysqld.log | grep password
使用 mysql -u root -p 并使用自动生成的密码登陆mysql
SET PASSWORD = PASSWORD('123456');
但是你会登陆之后会发现很多功能都不能用,只有修改密码才能进行正常操作,于是我们修改密码,但是发现密码不满足策略要求,修改失败,这是因为默认安装的mysql密码策略要求改密码必须满足:数字、小写字母、大写字母 、特殊字符、长度至少8位
解决办法:
1、满足mysql的要求设置一个复杂的密码
2、很多情况下我们不想受太多的限制,密码想设啥就设啥,可以这样做
在/etc/my.cnf
配置文件中增加
[mysqld]
validate_password=off
最后你还要设置一下过期时间,以防止密码失效。
在/etc/my.cnf
配置文件中增加
[mysqld]
default_password_lifetime=0
或者直接通过命令设置
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER
修改后service mysqld restart
或者systemctl restart mysqld.service
重启mysqld,通过SHOW PLUGINS;即可看到密码验证的插件被停止了。
这时候重新登陆mysql并修改密码,发现可以随意修改为自己想要的密码
验证一下,授权root用户能远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
使用Navicat for Mysql验证链接
链接成功,查看mysql版本:
到这里mysql 5.7.22 就基本安装完毕了,其他的包括mysql默认编码配置等这里不做详解
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
# port mysql端口配置,初始配置文件没有写这个属性,默认端口都是3306,要改默认端口改这个属性值就行
port=3306
# 下边两个属性也是后面添加的,设置数据库的默认编码
character-set-server=utf8
init_connect='SET NAMES utf8'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 下边几个属性也是后面添加的,分别是忽略大小写、关闭数据库用户密码策略、关闭密码有效期设置
lower_case_table_names=1
validate_password=off
default_password_lifetime=0
修改完配置文件后需要重启mysql
systemctl restart mysqld.service