新配的服务器, 装的系统是centOS 7 , 同事装的msyql是5.7.23, 后来因为没有配置文件my.cnf, 据说重新安装会比较快,我就开始了坎坷的重装mysql的路程...
1. 先卸载原来已经安装的mysql
1.1查找linux安装的msyql服务
# rpm -qa | grep -i mysql
1.2查找mysql相关的文件夹
# find / -name mysql
1.3停止mysql服务
--停止服务
# service msyql stop
--开启服务
# service mysql start
--查询服务状态
# service msyql status
1.4删除这些服务和文件夹
--删除安装的服务
# rpm -ev MySQL-server-5.7.23-1.linux_glibc2.5
--删除mysql相关的文件夹
# rm -rf /usr/lib64/mysql
检查是否还有没有删除的相关文件1.1 和1.2
2. 安装mysql
官方网站上下载安装包. 我下载的是tar.gz版本5.7.21
2.1 解压要相应的位置, 然而这个版本也没有配置文件, 只能自己DIY了..
--很多,我直接复制别人的.. 连接放下面..
--切换到压缩包所在目录
# cd /data/software
--解压压缩包
# tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
--移动并修改文件名
# mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
2.2 创建数据仓库目录
--/data/mysql 数据仓库目录
# mkdir /data/mysql
--查询本目录包含的文件和文件夹
# ls /data/
2.3 新建组及用户及目录
--新建一个msyql组
# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell
2.4改变目录属有者(改变权限)
# cd /usr/local/mysql
# pwd
# chown -R mysql .
# chgrp -R mysql .
# chown -R mysql /data/mysql
2.5 初始化配置
--配置参数并初始化
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
别人的图.. 会出现以上的画面, 注意最后一行, root@localhost: 后面的是临时密码. 记好.
-- 指定数据位置
# bin/mysql_ssl_rsa_setup --datadir=/data/mysql
2.6 修改配置文件
如果版本低的话, 会有mysql-->support-files-->my-default.cnf文件, 拷到 root目录下的etc文件夹里.
如果版本高的话, 没有这个文件, 自己新建一个记事本, 修改名字为my.cnf 内容如下:
# 文件里的内容 #是注释 一些路径根据自己实际填写
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[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 = 10G
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin
character-set-server=utf8
collation-server=utf8_bin
init-connect='SET NAMES utf8'
# These are commonly set, remove the # and set as required.
# 根据自己实际填写, mysql安装目录
basedir = /usr/local/mysql
# 根据自己实际填写, mysql数据所在位置
datadir = /export/mysql/var
port = 3306
# 如果要设置主从, 这个id要唯一
server_id = 22206
socket = /export/mysql/mysql.sock
binlog_format = statement
# 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
log_bin_trust_function_creators = on
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
2.7 修改后启动mysql
# /etc/init.d/mysql start
注意: 一般情况下, 这里会报错, pid的问题. 如果你的目录里有pid, 还是报pid的错误,
就参考以下链接, 执行以下步骤: https://blog.csdn.net/zalion/article/details/9274263
pid是根据本机在初始化的时候自动生成的文件, 如果文件夹里压根就没有自动生成, 就执行以下步骤自已生成一个pid文件.
--重新构造pid文件
# ps -ef|grep mysqld|awk '{print $2}'|sed 1d |sed 2d > ${HOSTNAME}.pid
要注意文件所在目录要和配置文件里的目录保持一致...
再次启动mysql
如果pid能解决, 基本就会启动成功.
2.8 登陆mysql
# mysql -hlocalhost -uroot -p
--如果出现:-bash: mysql: command not found 就执行:
# ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行
2.8.1输入之前生成的临时密码.
如果之前的页面没了.. 也没记, 可以执行以下步骤获取:
-- 日志文件默认位置
# cat /var/log/mysqld.log
能够看到一行信息,例如我的是:
2017-11-29T01:55:23.192210Z 1 [Note] A temporary password is generated for root@localhost: Q5Sck93kdK/*
localhost: 后面的一串就是你mysql登录的初始密码。
如果真的找不到参考以下链接, 跳过密码重新设置, 反正我没成功, 我是使用临时密码成功的..
https://blog.csdn.net/lisongjia123/article/details/57418989
2.8.2 修改密码, 并设置远程连接
--修改密码
mysql> set password=password('root');
--设置root账户的host地址(修改了才可以远程连接)
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql>flush privileges;
--查看表操作
mysql> use mysql;
mysql> select host,user from user;
2.8.3 添加系统路径
# vim /etc/profile
--添加如下行, 路径为安装路径的bin目录
export PATH=/usr/local/mysql/bin:$PATH
-- 退出后更新加载配置文件
# source /etc/profile
2.8.4 配置mysql自动启动
# chmod 755 /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig --level 345 mysql on
安装结束.
参考文档:
https://www.cnblogs.com/jr1260/p/6590232.html
https://blog.csdn.net/zalion/article/details/9274263
https://blog.csdn.net/ljm15832631631/article/details/79498961
https://blog.csdn.net/maosilu_ice/article/details/78662847
https://blog.csdn.net/aa464971/article/details/52976230
3. 配置主从同步数据库(只同步其中一个数据库, 没有全部同步)
系统: centOS 7
mssql: 5.7.21
主ip: 192.168.1.11 从ip:192.168.1.12
3.1 配置主数据库
3.1.1 修改主服务器的mysql配置文件 my.cnf, 添加以下字段
# id唯一标识, 表示主服务器,
server_id=1
# 开启二进制日志
log-bin=mysql-bin
#表示同步哪个数据库, 没有该字段全数据库
binlog-do-db=oa
3.1.2 给从服务器创建访问用户
# 用户:mysql12 密码:mysql12
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql12’@’192.168.95.12’ IDENTIFIED BY ‘mysql12’;
mysql>FLUSH PRIVILEGES;
或者创建完用户, 重启mysql服务, 我在重启的时候出现了问题..
ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
而且这个报错日志里是没有的..
https://blog.csdn.net/aa464971/article/details/52976230
根据这个, 把配置文件删除了重新启动才解决.. 注意备份!
3.1.2 查看192.168.95.11MySQL服务器二进制文件名与位置
mysql>SHOW MASTER STATUS;
注意: 记下File 和Position字段的值
3.2 配置从服务器
配置文件my.cnf添加以下字段:
server_id=2
登陆mysql,执行以下步骤:
mysql>CHANGE MASTER TO
>MASTER_HOST=’192.168.95.11’, --主服务器ip
>MASTER_USER=’mysql12’, --创建的用户名
>MASTER_PASSWORD=’mysql12’, --密码
>MASTER_LOG_FILE=’mysql-bin.000048’, --主服务器查询的 File
>MASTER_LOG_POS=432; --主服务器查询的 Position
3.3 开启同步
mysql>start slave;
3.4 查看slave状态:
-- 重点看slave_io_running:yes 和 slave_sql_running:yes
mysql>show slave status\G
如果都为yes就成功了。
如果io的显示connecting,则有三种情况:1.网络不通,2.pos不对,3.同步密码错误
如果sql显示no,有两种情况:1.程序可能在slave上进行了写操作,2.slave机器重启后,事务回滚造成的
3.5 测试主从设置是否成功
在主数据库里添加表和字段.. 看从数据库里是否跟着更新.. 如果更新表示主从同步成功.
参考:
https://blog.csdn.net/small_33/article/details/78978415
https://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label0