RedHat/Centos6下MYSQL5.7十分钟快装

Mysql官方参考资料链接:A Quick Guide to Using the MySQL Yum Repository

环境:CentOS-6.8

Part1.安装 

1.下载rpm包

wget https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm

2.安装rpm包

rpm -Uvh mysql80-community-release-el6-1.noarch.rpm

3.查看可以安装的Mysql版本,默认下图中的5.7版本是disabled的,执行步骤4

yum repolist all | grep mysql

4.打开被禁的Mysql 5.7 Community Server安装源。

vi /etc/yum.repos.d/mysql-community.repo

Mysql5.7版本的enable修改为1(允许),其他不安装的版本修改为0(禁止),截稿时最新版本为8.0。修改结果下图:

5.再次执行步骤三,确认修改结果。

yum repolist all | grep mysql

6.配置yum允许安装mysql57
 

yum-config-manager --enable mysql57-community

7.查看yum允许安装的版本,验证是否允许mysql57

yum repolist enabled | grep mysql

8.执行安装命令,提示y/n时输入y,确定进行下载安装,网速看个人。至此安装完成。

//先卸载系统默认的mariaDB依赖
yum remove mysql-libs

//重新安装mysql依赖
yum install mysql-libs

//安装mysql
sudo yum install mysql-community-server

Part2.配置防火墙

0.查看防火墙状态,CenOS6系列使用iptables,7系列使用firewalld,命令不一致,都贴出来:

iptables防火墙使用:

service iptables status

firewalld使用:

systemctl status firewalld 或者 firewall-cmd --state

1.开放防火墙端口:

firewalld防火墙使用如下命令添加3306端口,--permanent参数代表永久规则。

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启firewalld防火墙使规则生效:

firewall-cmd --reload  或者   service firewalld restart

iptables防火墙可以用命令添加规则,此处贴出的方案是修改规则表。好处是直接复制生效的规则,妥当。避免网上搜出来的命令会因为版本问题,或者楼主的英文水平问题,造成命令错误的情况出现。如下就是复制的22规则,然后修改的端口:

vi /etc/sysconfig/iptables

重启iptables防火墙使规则生效,本来没启动也就启动了:

service iptables restart

Part3.初始化Mysql

1.启动服务

service mysqld start

2.查看初始化的默认密码,我装了多次,卸载不会卸载该日志,所以看时间确定密码是哪个。
 

grep 'temporary password' /var/log/mysqld.log

3.输入如下命令,按照提示输入默认密码进入mysql

mysql -uroot -p

4.修改mysql5.7密码安全策略,因为5.7对密码复杂的有要求,普通密码无法使用。但开发过程中搞那么长的密码很麻烦。如果不需要修改可以跳过此步骤:

set global validate_password_policy=0;
set global validate_password_length=4;

5.修改root用户本地登录的初始密码为root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
flush privileges;

6.mysql默认不允许root远程登陆,此处也不建议开启远程登陆root,所以再创建一个远程登陆的管理员账号ray,远程登陆密码为123123,并赋予所有库的所有权限:

create user 'ray'@'%' identified by '123123';
grant all privileges on *.* to 'ray'@'%';
flush privileges;

Part4.扩展:修改端口

1.修改mysql默认端口号为13306。打开my.cnf:

vi /etc/my.cnf

在[client]和[mysqld]下添加如下字段,没有[client]的话手动添加。

port=13306

2.保存退出,使用如下命令重启mysql服务使之生效:

service mysql restart

Part5.扩展:创建数据库指定字符集为(例:utf8mb4和排序规则(例:utf8mb4_unicode_ci

create database mydatabase default character set utf8mb4 collate utf8mb4_unicode_ci;

Part6.扩展:使用mysqldump在Mysql服务器之间备份数据库(表)

约定:主Mysql数据库=Master,Mysql备份数据库服务器(被写入备份数据的数据库)=Slave

说明:此处使用root账号演示,因为在Slave写入数据的时候,需要使用有管理员权限(SUPER privilege)的账户,此问题不在此帖讨论范围内。易见错误如:

[Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

类似问题参考链接可见阿里云的资料,链接:RDS MySQL权限问题(错误代码:1227,1725)
 

#登陆Master的mysql,输入一下命令执行传输。若在Slave执行,则调换命令中Master与Slave的位置。

mysqldump --host=Master:IP --port=Master:Port -uroot -proot --opt Master:DBName| mysql --host=Slave:IP --port=Slave:Port -uroot -proot -C Slave:DBName

Part7.附件yum安装Mysql-Community-Server-5.7.22默认my.cnf文件

# 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
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

猜你喜欢

转载自blog.csdn.net/crazy_rays/article/details/80464804