-
下载并安装MySQL官方的 Yum Repository
未安装wget的执行以下命令安装 [root@iZwz9ck221fsfzqs3u88j4Z ~]# sudo yum install wget [root@iZwz9ck221fsfzqs3u88j4Z ~]# cd /root [root@iZwz9ck221fsfzqs3u88j4Z ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 下载的文件大概25KB的样子,然后就可以直接yum安装了 [root@iZwz9ck221fsfzqs3u88j4Z ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm [root@iZwz9ck221fsfzqs3u88j4Z ~]# [root@iZwz9ck221fsfzqs3u88j4Z ~]#
如果报错:" 需要:libsasl2.so.2()(64bit) "
解决方法:
修改vim /etc/yum.repos.d/mysql-community.repo 源文件
[mysql57-community] name=MySQL 5.7 Community Server ## baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
下面就是使用yum安装MySQL了
[root@iZwz9ck221fsfzqs3u88j4Z ~]# yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
出现这样的提示表示安装成功
2. MySQL数据库设置
2.1 首先启动MySQL
[root@iZwz9ck221fsfzqs3u88j4Z ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@iZwz9ck221fsfzqs3u88j4Z ~]# systemctl status mysqld.service

2.2 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@iZwz9ck221fsfzqs3u88j4Z ~]# grep "password" /var/log/mysqld.log

上面标记的就是初始密码
进入数据库修改密码:
[root@iZwz9ck221fsfzqs3u88j4Z ~]# mysql -uroot -p # 回车后会提示输入密码 输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库: mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; #newpassword改为复杂密码,简单密码通过不了 修改为简单解决方案:先修改密码为规范复杂的密码,再修改密码规则再设置会简单密码即可 mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; 再修改为简单密码: mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc-123';
2.3 增加远程访问账户(开放防火墙对应端口号3306):
mysql> grant all on *.* to root@'%' identified by 'abc-123'; #远程访问账户为root,密码为:abc-123
卸载yun Repository mysql自动更新(因为安装了Yum Repository,以后每次yum操作都会自动更新)
[root@iZwz9ck221fsfzqs3u88j4Z ~]# yum -y remove mysql57-community-release-el7-10.noarch
2.4 配置mysql logbin日志记录功能
vim /etc/my.conf
在文件my.cnf最后增加几行
#logbin配置 #有效期14天,当mysqld服务重启自动扫描删除过期文件 log_bin=mysql_bin expire-logs-days = 14 max-binlog-size = 500M binlog-format=Row server-id=1

这是我们开启了bin-log, 我们就必须指定我们的函数是否是
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句
其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。
在MySQL中创建函数时出现这种错误的解决方法:
mysql> set global log_bin_trust_function_creators = 1;