一、安装mysql
1、首先确定linux版本,确定下载对应的RPM。(查看mysql与linux版本对应的资料)
yum remove mysql mysql-server mysql-libs mysql-server;
find / -name mysql 将找到的相关东西delete掉;
2、选择好下载版本,下载该版本。
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
下载结果:mysql57-community-release-el7-11.noarch.rpm
3、基于EL7的系统使用以下命令安装下载的发行包
sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm
3.1、可以通过以下命令检查MySQL Yum存储库是否已成功添加
yum repolist enabled | grep "mysql.*-community.*"
4、安装mysql
sudo yum -y install mysql-community-server
安装过程中需要确认两次.
这将安装MySQL服务器(mysql-community-server)的软件包以及运行服务器所需组件的软件包,包括客户端软件包(mysql-community-client),客户端和服务器(mysql-community-common)的常见错误消息 和字符集以及共享客户端库(mysql-community-libs) 。
5、启动mysql
sudo service mysqld start
结果:
Redirecting to /bin/systemctl start mysqld.service
6、查看mysql的运行状态
sudo service mysqld status
运行结果:
二、mysql安装后的登录和远程测试
1、登录mysql
1) 超级用户帐户'root'@'localhost被创建。超级用户的密码被设置并存储在错误日志文件中。查看临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
结果:
2017-12-20T08:13:10.076576Z 1 [Note] A temporary password is generated for root@localhost: xxxxxx #xxxxxx就是初始密码。
2) 登录mysql
mysql -uroot -p 然后输入密码
输入密码进入mysql后,登录后必须先修改登录密码,才能进行其他操作。
首先降低mysql的复杂策略: 修改validate_password_policy参数值为0(1为开启复杂策略)
注意:此参数(policy)必须优先修改,因为policy策略不修改为0会影响下面的length参数。
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' ;
密码修改后,可以查看密码设置要求:
SHOW VARIABLES LIKE 'validate_password%';
拓展
新建用户
CREATE USER 'icare_dev'@'%' IDENTIFIED BY '******';
用户授权
添加用户权限: GRANT ALL ON databasename.tablename TO 'icare_dev'@'%';
撤销用户权限: REVOKE ALL ON databasename.tablename TO 'icare_dev'@'%';
删除用户及权限 :drop user 'icare_dev'@'%';
例如 当前数据库下所有的表: GRANT ALL ON icare_dev.* TO ‘icare_dev’@’%’;
如果使用Navicat连接报错:
1.在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
2.依次执行如下命令:
use mysq;
select host from user where user='root';
可以看到当前主机配置信息为localhost.
3.执行update user set host = '%' where user ='root'将Host设置为通配符%。 Host设置了“%”后便可以允许远程访问。
update user set host = '%' where user ='root';
第二种方法:
grant all privileges on *.* to root@"%" identified by "123456";
grant all privileges on *.* to root@"localhost" identified by "123456";
flush privileges;
4.Host修改完成后记得执行flush privilegs使配置立即生效。
flush privileges;
5.使用navicat 成功连接至mysql
主从库搭建
环境:
主数据库: 192.168.3.152
从数据库: 192.168.3.153
配置步骤:
1、保证两个数据库中的库和数据是一致的;
2、在主数据中创建一个同步账号(可不创建使用现有的),如果仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。
1)、创建一个账号,账号:master 密码: 123456
Mysql>CREATE USER 'master'@'%' IDENTIFIED BY '123456';
Mysql>FLUSH PRIVILEGES;
Mysql>GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
如果密码提示校验失败:
set global validate_password_policy=0;
set global validate_password_length=1;
3、配置主数据库
1)要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。
4)配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“master-bin”作为前缀,Server ID配置为1,如下:
[mysqld]
server-id=1
log-bin=master-bin
log_bin_index =master-bin.index
# binlog_do_db=witkey ##witkey是要同步的数据库的名称
binlog_ignore_db=mysql
user=mysql
4、重启mysql
5、查看主服务器状态:
service mysqld restart
mysql -uroot -p
mysql> show master status;
注意:记录好File和Position,后面要用
6、配置从数据库:
1)从服务器,同理,要分配一个唯一的Server ID,需要关闭MySQL,修改好my.cnf后再重启,如下:
[mysqld]
server-id=2
log-bin=salve-bin
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
2)在从服务器里配置连接主服务器的信息:
进入mysql:
mysql -uroot -p
Mysql>stop slave;
Mysql>change master to master_host='192.168.3.152', master_port=3306, master_user='master', master_password='123456', master_log_file='master-bin.000008', master_log_pos=106;
说明:192.168.3.152是主服务器的id,master_log_file='master-bin.000008'是主服务器的File(你主服务器查出来的是什么就写什么),master_log_pos=106是主服务器的Position(你主 服务器查出来的是什么就写什么);
每次重新启动主服务器,master_log_file和master_log_pos都会变。
3)查看状态
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.137.130
Master_User: zhu1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000010
Read_Master_Log_Pos: 591960
Relay_Log_File: slave-relay-bin.000002
Relay_Log_Pos: 592106
Relay_Master_Log_File: master-bin.000010
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
说明:Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都是yes就说明成功了。
4)若 no 请重复执行以下内容,直至yes:
stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; start slave;
接着查看状态: show slave status\G