1、单机MySQL主机名修改

今天无事看到自己的主机名不对,于是改了一下,以便区分服务器,那只重启MySQL时出现下面错误:

MySQL manager or server PID file could not be found!       [FAILED]
Starting MySQL.Manager of pid-file quit without updating fi[FAILED]

怎么会找不到PID呢,看下面:

[root@daban114.com ~]#  ps aux | grep mysql
mysql    16433  0.0  0.2  36636  5756 ?        Sl   15:07   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --log-error=/usr/local/mysql/var/hao9goAndSecondWeb.err --pid-file=/usr/local/mysql/var/hao9goAndSecondWeb.pid --socket=/tmp/mysql.sock --port=3306
root     16992  0.0  0.0   4020   704 pts/0    S+   15:11   0:00 grep mysql

原来PID还是原来主机名.pid,运行:

kill -9 <mysqlpid> 然后 service mysql start 哈哈看到绿色的OK了,

[root@daban114 ~]# service mysql start
Starting MySQL.                                            [  OK  ]

[mysql@master ~]$ /etc/init.d/mysql restart
MySQL server PID file could not be found! [FAILED]
Starting MySQL..^[[A.......................................[FAILED]....................................................
.The server quit without updating PID file (/usr/local/mysql5.6/data/master.pid).
[mysql@master ~]$ /etc/init.d/mysql restart

mysql 修改主机名后 ,手动kill进程 重启

2、MySQL从库主机名修改

环境:MySQL5.6 + CentOS6.5

  问题描述:从库修改主机名后,从库的同步没有自动启动,用start slave命令开启失败

  从库修改主机名后,从库的同步没有自动启动,查看状态如下:

  mysql> show slave statusG

  *************************** 1. row ***************************

  Slave_IO_State:

  Master_Host: 192.168.1.2

  Master_User: manager_slave

  Master_Port: 3306

  Connect_Retry: 10

  Master_Log_File: logbin.000053

  Read_Master_Log_Pos: 588641410

  Relay_Log_File: zzstep-relay-bin.000015

  Relay_Log_Pos: 38778474

  Relay_Master_Log_File: logbin.000053

  Slave_IO_Running: No

  Slave_SQL_Running: No

  Replicate_Do_DB:

  Replicate_Ignore_DB: mysql,information_schema,performance_schema

  Replicate_Do_Table:

  Replicate_Ignore_Table:

  Replicate_Wild_Do_Table:

  Replicate_Wild_Ignore_Table: hn.sphinx%

  Last_Errno: 0

  Last_Error:

  Skip_Counter: 0

  Exec_Master_Log_Pos: 588641410

  Relay_Log_Space: 0

  Until_Condition: None

  Until_Log_File:

  Until_Log_Pos: 0

  Master_SSL_Allowed: No

  Master_SSL_CA_File:

  Master_SSL_CA_Path:

  Master_SSL_Cert:

  Master_SSL_Cipher:

  Master_SSL_Key:

  Seconds_Behind_Master: NULL

  Master_SSL_Verify_Server_Cert: No

  Last_IO_Errno: 0

  Last_IO_Error:

  Last_SQL_Errno: 0

  Last_SQL_Error:

  Replicate_Ignore_Server_Ids:

  Master_Server_Id: 0

  Master_UUID: 8ce09c46-a7be-11e4-8e06-0050569f4b5b

  Master_Info_File: /opt/mysql_data/master.info

  SQL_Delay: 0

  SQL_Remaining_Delay: NULL

  Slave_SQL_Running_State:

  Master_Retry_Count: 86400

  Master_Bind:

  Last_IO_Error_Timestamp:

  Last_SQL_Error_Timestamp:

  Master_SSL_Crl:

  Master_SSL_Crlpath:

  Retrieved_Gtid_Set:

  Executed_Gtid_Set:

  Auto_Position: 0

  1 row in set (0.00 sec)

  使用start slave命令开启失败:

  mysql> start slave;

  ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

  使用reset slave命令解决:

  mysql> reset slave;

  Query OK, 0 rows affected (0.01 sec)

  mysql> start slave;

  Query OK, 0 rows affected (0.03 sec)

  mysql> show slave statusG

  *************************** 1. row ***************************

  Slave_IO_State: Queueing master event to the relay log

  Master_Host: 192.168.1.2

  Master_User: manager_slave

  Master_Port: 3306

  Connect_Retry: 10

  Master_Log_File: logbin.000021

  Read_Master_Log_Pos: 11215004

  Relay_Log_File: db_mysql_02-relay-bin.000007

  Relay_Log_Pos: 22097

  Relay_Master_Log_File: logbin.000005

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

  Replicate_Do_DB:

  Replicate_Ignore_DB: mysql,information_schema,performance_schema

  Replicate_Do_Table:

  Replicate_Ignore_Table:

  Replicate_Wild_Do_Table:

  Replicate_Wild_Ignore_Table: hn.sphinx%

  Last_Errno: 0

  Last_Error:

  Skip_Counter: 0

  Exec_Master_Log_Pos: 21937

  Relay_Log_Space: 13113813

  Until_Condition: None

  Until_Log_File:

  Until_Log_Pos: 0

  Master_SSL_Allowed: No

  Master_SSL_CA_File:

  Master_SSL_CA_Path:

  Master_SSL_Cert:

  Master_SSL_Cipher:

  Master_SSL_Key:

  Seconds_Behind_Master: 1071515

  Master_SSL_Verify_Server_Cert: No

  Last_IO_Errno: 0

  Last_IO_Error:

  Last_SQL_Errno: 0

  Last_SQL_Error:

  Replicate_Ignore_Server_Ids:

  Master_Server_Id: 11

  Master_UUID: 8ce09c46-a7be-11e4-8e06-0050569f4b5b

  Master_Info_File: /opt/mysql_data/master.info

  SQL_Delay: 0

  SQL_Remaining_Delay: NULL

  Slave_SQL_Running_State: creating table

  Master_Retry_Count: 86400

  Master_Bind:

  Last_IO_Error_Timestamp:

  Last_SQL_Error_Timestamp:

  Master_SSL_Crl:

  Master_SSL_Crlpath:

  Retrieved_Gtid_Set:

  Executed_Gtid_Set:

  Auto_Position: 0

  1 row in set (0.00 sec)

  mysql>

  总结:

  由于修改主机名后,relay-log的名称发生变化,导致文件IO失败,reset slave可以重新定位。

文章来源:http://huangfuff.blog.51cto.com/2632203/1610429

如果修改了从库的主机名,而从库又忘了做relay-log和relay-log-index的配置,估计会导致从库同步失败。由于公司刚改了主机名,写个博客,后续出问题好进行改进。方案测试通过。

步骤如下:

1: 从库先停止主从复制

stop slave;

2: 记录下主从同步的信息(主要是以下两个信息)

show slave status\G

Master_Log_File: mysql-bin.000085

Read_Master_Log_Pos: 120

3: 重置数据库

reset slave;

--> 在这里,最好设置一个两个参数,预防后续再改主机名

relay-log = relay-log

relay-log-index = relay-log.index

4: 如果主库设置给从库的用户名和密码忘记了话,再grant一次(记得就跳过这步了)

grant replication slave on *.* to 'replication'@'192.168.1.2' identified by 'xxx';

5: 从库设置slave

change master to master_log_file='mysql-bin.000085',master_log_pos=120,master_user='replication',master_password='xxx', master_host='192.168.1.1';

6: 开启从库

start slave;

另外,再reset slave后感觉得配置下relay-log和relay-log-index,然后重启下数据。再从第5步开始,这样后续改主机名就不会影响到了。

如果是主库没指定bin-log和bin-log-index,那修改主机名后会怎么样,不知道会产生什么样的问题和应对方案该怎么样。暂时方案如下:

1: 在mysql上找到主的位置,应该是一开始的。位置:4

show master status\G

--> 其实这里,如果改了主机名,最好在配置里面指定两个参数(后续改主机就没事了)

log-bin=master-bin

log-bin-index = masters-bin.index

2: 先把从库停止

stop slave;

3: 把之前从库的同步信息全部去掉

reset slave;

4: 然后指向主的第一个位置开始同步

change master to master_log_file='master-bin.000001',master_log_pos=4,master_user='replication',master_password='xxx', master_host='192.168.1.1';

5: 再开启从应该就可以了

start slave;

MySQL服务器修改主机名后问题解决的更多相关文章

  1. 修改主机名后VCS的修改

    转:https://blog.csdn.net/nauwzj/article/details/6733135 一. 单机改主机名需更改以下文件: /etc/hosts /etc/hostname.hm ...

  2. CentOS 7 修改主机名

    今天在阿里云上买了一个centos7的服务器,连接上以后,发现一个很长很长的主机名,看着让人很是不爽,就想着怎样将其改成一个有个性的名字. 这里我想说的是,在centos7 版本的linux系统上和c ...

  3. 如何在CentOS 7上修改主机名

    如何在CentOS 7上修改主机名 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时 ...

  4. Linux CentOS7.0 (02)修改主机名和ip地址

    一.主机名修改 1.查看命令 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty). "静态"主机名也称为内核主机名 ...

  5. Centos7系统下修改主机名操作笔记

    习惯了在Centos6系统下修改主机名的操作,但是Centos7下修改主机名的操作却大不相同!操作笔记如下: 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient) ...

  6. 【转】Centos 7 修改主机名hostname

    在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty).“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始 ...

  7. sqlserver修改主机名

    sqlserver迁移后,主机和原机器不符,将系统修改主机名后,数据库代理服务.邮件服务无法启动 执行下面语句,检查sqlserver中windows主机名 -- 检查SQL Server中的&quo ...

  8. CentOS 7上修改主机名

                                       如何在CentOS 7上修改主机名                                           在Cent ...

  9. CentOS7修改主机名的三种方法

    在CentOS7中,有三种定义的主机名: 静态的(Static hostname) “静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名. 瞬态的(Tansie ...

随机推荐

  1. xsl 文件如何定义 Javascript 函数并且调用

    <?xml version='1.0'?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3. ...

  2. 如何合理的规划jvm性能调优

    JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响.但也有一些基础的理论和原则,理解这些理论并遵循这些原则会让你的性能调优任务将会更加轻松.为了更好的理解本篇所介绍的内 ...

  3. BZOJ3112 [Zjoi2013]防守战线 【单纯形】

    题目链接 BZOJ3112 题解 同志愿者招募 费用流神题 单纯形裸题 \(BZOJ\)可过 洛谷被卡.. #include<algorithm> #include<iostream ...

  4. loj2542 「PKUWC2018」随机游走 【树形dp + 状压dp + 数学】

    题目链接 loj2542 题解 设\(f[i][S]\)表示从\(i\)节点出发,走完\(S\)集合中的点的期望步数 记\(de[i]\)为\(i\)的度数,\(E\)为边集,我们很容易写出状态转移方 ...

  5. 单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr

    cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of project 'cas-server-cor ...

  6. Codeforces Good Bye 2018

    咕bye 2018,因为我这场又咕咕咕了 无谓地感慨一句:时间过得真快啊(有毒 A.New Year and the Christmas Ornament 分类讨论后等差数列求和 又在凑字数了 #in ...

  7. JAVA中的File.separate(跨平台路径)

    转: JAVA中的File.separate(跨平台路径) 2016年03月27日 23:33:50 才不是本人 阅读数:1952   在Windows下的路径分隔符和Linux下的路径分隔符是不一样 ...

  8. js字符串替换(时间转换)

    转: js中字符串全部替换 废话不多说,直接发结果 在js中字符串全部替换可以用以下方法: str.replace(/需要替换的字符串/g,"新字符串") 比如: "yy ...

  9. linux kill 掉所有匹配到名字的进程

    如,要 kill 掉 swoole 相关的进程 ps aux | grep swoole |  awk '{print $2}' | xargs kill -9 ps 列出所有进程, 参数: a -  ...

  10. Java入门:基础算法之从字符串中找到重复的字符

    本程序演示从一个字符串中找出重复的字符,并显示重复字符的个数. import java.util.HashMap; import java.util.Map; import java.util.Set ...