Slave_SQL_Running: No 报错一次解决

Posted buxuxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Slave_SQL_Running: No 报错一次解决相关的知识,希望对你有一定的参考价值。

 

root@localhost:mysql.sock (none) 07:40:52>show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: slave
Master_Port: 8010
Connect_Retry: 60
Master_Log_File: mysql-bin.000017
Read_Master_Log_Pos: 1013443697
Relay_Log_File: mariadb-relay-bin.000014
Relay_Log_Pos: 852581519
Relay_Master_Log_File: mysql-bin.000017
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno: 1418
Last_Error: Error This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) on query. Default database: oss. Query: CREATE DEFINER=`root`@`localhost` FUNCTION `FN_SPLIT`(
x VARCHAR(255),
sp VARCHAR(12),
pos INT
) RETURNS varchar(255) CHARSET utf8
RETURN REPLACE(
SUBSTRING( SUBSTRING_INDEX(x, sp, pos), LENGTH(SUBSTRING_INDEX(x, sp, pos -1)) + 1 ),
sp, 
‘‘
)Skip_Counter: 0
Exec_Master_Log_Pos: 852581235
Relay_Log_Space: 1013444320
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: 1418
Last_SQL_Error: Error This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) on query. Default database: oss. Query: CREATE DEFINER=`root`@`localhost` FUNCTION `FN_SPLIT`(
x VARCHAR(255),
sp VARCHAR(12),
pos INT
) RETURNS varchar(255) CHARSET utf8
RETURN REPLACE(
SUBSTRING( SUBSTRING_INDEX(x, sp, pos), LENGTH(SUBSTRING_INDEX(x, sp, pos -1)) + 1 ),
sp, 
‘‘
)Replicate_Ignore_Server_Ids: 
Master_Server_Id: 51
1 row in set (0.00 sec)

 

解决方法

root@localhost:mysql.sock (none) 07:40:56>set global log_bin_trust_function_creators=TRUE;
Query OK, 0 rows affected (0.00 sec)

root@localhost:mysql.sock (none) 07:54:41>show variables like ‘%func%‘; 
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.00 sec)

root@localhost:mysql.sock (none) 07:54:48>show slave status\G 
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: slave
Master_Port: 8010
Connect_Retry: 60
Master_Log_File: mysql-bin.000017
Read_Master_Log_Pos: 1014398257
Relay_Log_File: mariadb-relay-bin.000014
Relay_Log_Pos: 852581519
Relay_Master_Log_File: mysql-bin.000017
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno: 1418
Last_Error: Error ‘This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)‘ on query. Default database: ‘oss‘. Query: ‘CREATE DEFINER=`root`@`localhost` FUNCTION `FN_SPLIT`(
x VARCHAR(255),
sp VARCHAR(12),
pos INT
) RETURNS varchar(255) CHARSET utf8
RETURN REPLACE(
SUBSTRING( SUBSTRING_INDEX(x, sp, pos), LENGTH(SUBSTRING_INDEX(x, sp, pos -1)) + 1 ),
sp, 
‘‘
)‘
Skip_Counter: 0
Exec_Master_Log_Pos: 852581235
Relay_Log_Space: 1014398880
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: 1418
Last_SQL_Error: Error ‘This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)‘ on query. Default database: ‘oss‘. Query: ‘CREATE DEFINER=`root`@`localhost` FUNCTION `FN_SPLIT`(
x VARCHAR(255),
sp VARCHAR(12),
pos INT
) RETURNS varchar(255) CHARSET utf8
RETURN REPLACE(
SUBSTRING( SUBSTRING_INDEX(x, sp, pos), LENGTH(SUBSTRING_INDEX(x, sp, pos -1)) + 1 ),
sp, 
‘‘
)‘
Replicate_Ignore_Server_Ids: 
Master_Server_Id: 51
1 row in set (0.00 sec)

root@localhost:mysql.sock (none) 07:55:10>stop slave;
Query OK, 0 rows affected (0.00 sec)

root@localhost:mysql.sock (none) 07:55:24>start slave;
Query OK, 0 rows affected (0.00 sec)

root@localhost:mysql.sock (none) 07:55:29>show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: slave
Master_Port: 8010
Connect_Retry: 60
Master_Log_File: mysql-bin.000017
Read_Master_Log_Pos: 1014399093
Relay_Log_File: mariadb-relay-bin.000014
Relay_Log_Pos: 875823539
Relay_Master_Log_File: mysql-bin.000017
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: 
Replicate_Ignore_DB: 
Replicate_Do_Table: 
Replicate_Ignore_Table: 
Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
Last_Errno: 0
Last_Error: 
Skip_Counter: 0
Exec_Master_Log_Pos: 875823255
Relay_Log_Space: 1014400296
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: 245969
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: 51
1 row in set (0.00 sec)

  

先解决报错原因,参数

set global log_bin_trust_function_creators=TRUE;
然后重启主从

以上是关于Slave_SQL_Running: No 报错一次解决的主要内容,如果未能解决你的问题,请参考以下文章

Mysql主从同步 异常Slave_SQL_Running: No

Mysql主从复制问题:Slave_SQL_Running: No

Slave_SQL_Running: No mysql同步故障解决方法

Slave_SQL_Running: No mysql同步故障解决方法

故障MySQL主从同步故障-Slave_SQL_Running: No

mysql 主从数据不一致 Slave_SQL_Running: No 解决方法