[root@bogon soft]# mkdir /usr/local/soft/mysql
[root@bogon soft]# cd /usr/local/soft/mysql
[root@bogon mysql]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
上边下载了yum Repository,接下来便可安装yum Repository:mysql
[root@bogon mysql]# yum -y install mysql57-community-release-el7-10.noarch.rpm
[root@bogon mysql]# yum -y install mysql-community-server
说明mysql已安装完成了。sql
[root@bogon ~]# systemctl start mysqld.service
设置开机启动:数据库
[root@bogon ~]# systemctl enable mysqld.service
[root@bogon ~]# systemctl status mysqld.service
[root@bogon ~]# grep "password" /var/log/mysqld.log
根据上边的提示,root的密码为:/c8dHFj8GLozvim
[root@bogon ~]# mysql -uroot -p
输入上边的密码进入。centos
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOU/password@121';
YOU/password@121替换为本身定义的密码,注意须要小写和大写以及符号组成,否则会修改失败。
语法命令:服务器
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username:更换为你的用户名。
host:受权的地址,若是是本地可以使用localhost,也可直接指定ip,所有受权使用 %。
password:更换为你的密码
例如:
mysql> CREATE USER 'youname'@'%' IDENTIFIED BY 'YOU/password@121';
语法命令:tcp
GRANT privileges ON databasename.tablename TO 'username'@'host'
privileges:用户的操做权限,若是授予全部权限则使用all.ide
databasename:数据库名称。tablename:表名。若是要给该用户授予对全部操做权限则可用*表示,例如*.*编码
例如:centos7
test_admin2用户设置test_db的只读(select)权限
mysql> GRANT SELECT ON test_db.* TO 'test_admin2'@'%';
设置youname用户的全部权限,而且开启远程访问:
mysql> grant all privileges on *.* to 'youname'@'%' identified by 'YOU/password@121' with grant option;
其中的 % 表示 开启全部的权限,若是只开启某一个ip,那么把%替换为ip地址就可。
刷新权限(设置完成后,必须进行设置):
mysql> flush privileges;
查看用户受权信息:
mysql> SHOW GRANTS FOR 'youname'@'%';
查看,mysql状态:
mysql> status
根据上图看出Server 和Db的编码不是utf-8。
先退出当前mysql
mysql> exit
编辑my.cnf:
[root@bogon ~]# vim /etc/my.cnf
键盘输入 “i” 进入编辑状态,插入如下内容:
[client] # 默认编码为utf8 default-character-set=utf8 ...... # 设置服务编码 character-set-server=utf8 # 设置校对规则 collation-server=utf8_general_ci
图下图:
键盘按下ESC退出编辑模式,键盘输入“:wq”保存并退出,重启mysql:
[root@bogon ~]# service mysqld restart
再次查看,mysql状态:
[root@bogon ~]# mysql -uroot -p
输入密码后查询状态:
mysql> status
输出如图所示:
说明修改过来了。
退出mysql:
mysql> exit
[root@bogon ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火墙重起:
[root@bogon ~]# firewall-cmd --reload
查看MySQL运行状态
systemctl status mysqld.service
关闭MySQL服务
systemctl stop mysqld.service
启动MySQL命令:
systemctl start mysqld.service
重启MySQL命令:
systemctl restart mysqld.service
MySQL 主从也被称为 复制、 AB 复制,简单来讲, 就是 A和B两台服务器,在A 服务器上 写入数据, 服务器B上也会跟 着写入数据 二者之间的数据是同步的。
MySQL 主从是基于 binlog的,主必须开启 binlog 才能进行主从。
如今准备两台服务器,上边都安装了mysql。
主:192.168.30.110
从:192.168.30.111
编辑my.cnf:
[root@bogon ~]# vim /etc/my.cnf
键盘输入 “i” 进入编辑状态,插入如下内容:
server-id=110 log_bin=centos7
以下图所示:
键盘按下ESC退出编辑模式,键盘输入“:wq”保存并退出,重启mysql:
[root@bogon ~]# service mysqld restart
重启之后,mysql的数据目录下(编辑my.conf时上图中的datadir的目录)会生成两个文件:centos7.index索引文件、centos7.000001日志文件。
建立用户,主从同步使用:
[root@bogon bin]# mysql -uroot -p
mysql> CREATE USER 'masterSlaveUser'@'129.168.30.%' IDENTIFIED BY 'weiLAI@119';
mysql> grant all privileges on *.* to 'masterSlaveUser'@'129.168.30.%' identified by 'weiLAI@119';
第一句:建立用户名为:masterSlaveUser,受权的地址:129.168.30.% %表示全部,密码:weiLAI@119
第二句:受权该帐号在地址129.168.30.%下的全部权限。
刷新权限(设置完成后,必须进行设置):
mysql> flush privileges;
mysql> SHOW MASTER STATUS;
如图所示:
编辑my.cnf:
[root@bogon ~]# vim /etc/my.cnf
键盘输入 “i” 进入编辑状态,插入如下内容:
server-id=111
备注:
此处的server-id=111是从的地址,和主不一样。
此处不须要配置log_bin,从不须要二进制日志文件。
键盘按下ESC退出编辑模式,键盘输入“:wq”保存并退出,重启mysql:
[root@bogon ~]# service mysqld restart
重点来了:
链接主数据库:
[root@bogon bin]# mysql -uroot -p
change master to master_host='192.168.30.110',
master_port=3306,
master_user='masterSlaveUser',
master_password='weiLAI@119',
master_log_file='centos7.000001',
master_log_pos=875;
备注:
(1)第一句:链接主mysql,地址为:192.168.30.110
(2)链接的端口、使用的帐号、密码
(3)后边两个是日志文件和端口,此处的875就是主查看日志的端口
如图所示:
而后输入一下命令,启动从:
mysql> start slave;
查看是否成功:
mysql> show slave status\G
Slave_IO_ Running和Slave_SQL _Running 都为yes,即为成功。
主从同步必须关闭防火墙,不然不会显示 Yes
至此mysql安装和配置完成。