Linux服务器搭建概要(五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a656678879/article/details/88015035

环境信息

centos7.2

安装目录

DOCKER安装mysql实现主从复制


DOCKER安装mysql实现主从复制

1. 安装前工作

在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库)。

卸载系统自带的Mariadb:

查看mariadb数据库:

rpm -qa | grep mariadb

卸载mariadb数据库

rpm -e --nodeps  mariadb文件名

卸载已安装的mysql:

查看 mysql 数据库:

rpm -qa | grep -i mysql

卸载 mysql 数据库:

rpm -e mysql文件名 # 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:rpm -e --nodeps mysql文件名)
删除etc目录下的my.cnf文件:

rm /etc/my.cnf

2. 安装MYSQL步骤

mysql官方(http://dev.mysql.com/downloads/repo/yum/)获取Yum Repository。

获取rpm镜像文件

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

md5校验文件

md5sum mysql57-community-release-el7-11.noarch.rpm      ##md5校验

安装mysql

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

yum -y install mysql-server

设置mysql为自启动

systemctl enable mysqld #设置开机启动
systemctl disable mysqld #关闭开机启动

重启mysql服务

service mysqld restart  [start, stop, restart, try-restart, reload, force-reload, status] #后面的都是可选项

查看3306端口是否启动

netstat -ln | grep 3306

首次查看自动产生的随即密码

grep "password" /var/log/mysqld.log
或者使用
cat /var/log/mysqld.log | grep password

修改密码策略(支持简单密码)也可以看下一步的配置文件关闭密码插件

set global validate_password_policy=0;     ###基于密码长度(修改为LOW方式)
set global validate_password_length=1      ###

修改配置文件(vim /etc/my.cnf)

编辑配置文件

vim /etc/my.cnf

插入以下文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

登录并修改密码

登录

mysql -uroot -p

修改密码

set password=password('新密码');
# 或者set PASSWORD = PASSWORD('新密码'); 也可以

生效

flush privileges; #刷新

添加远程访问权限

#登录mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;
mysql> flush privileges;
#退出mysql,重启mysql服务生效

mysql导入DATETIME字段数据时遇到错误incorrect datetime value ‘0000-0-0 00:00:00’ for column

mysql允许将’0000-00-00’保存为“伪日期”,如果不使用no_zero_date sql模式就可以啦

查看模式

show variables like 'sql_mode';

设置模式(把上面查出来的复制一遍然后去掉no_zero_date即可)

set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

如果无效果,那就修改mysql的配置文件【my.ini】

vim /etc/my.ini
追加
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
flush privileges;
重启

总结

NO_ZERO_IN_DATE和NO_ZERO_DATE       去掉是取消对日期中有0的限制
ONLY_FULL_GROUP_BY                  去掉非聚合列的检查(就是有时操作的时候报错但是已经执行成功了)

猜你喜欢

转载自blog.csdn.net/a656678879/article/details/88015035