MySQL报错问题

清空MySQL密码

更改数据库配置文件
# vi /etc/my.cnf
添加 skip-grant-tables
重启数据库
# service mysql restart
# flush privileges;

授权数据库远程访问
进入数据库
# mysql -u root -p
# use mysql
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
# flush privileges;
数据库执行报错

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法

set global log_bin_trust_function_creators=TRUE;

添加history 时间记录

export HISTTIMEFORMAT="%F %T `whoami` "

mysql 定时器创建

创建存储过程

CREATE PROCEDURE redpack_num()
BEGIN
UPDATE `sys_config` SET item_val='6' WHERE item='award_day_num';
END

创建定时器事件
create event if not exists eventJob 
on schedule AT '2018-06-29 10:31:20'
on completion PRESERVE
do call redpack_num();

SET GLOBAL event_scheduler = 1;  -- 启动定时器
SET GLOBAL event_scheduler = 0;  -- 停止定时器

ALTER EVENT eventJob ON  COMPLETION PRESERVE ENABLE;   -- 开启事件
ALTER EVENT eventJob ON  COMPLETION PRESERVE DISABLE;  -- 关闭事件


SHOW VARIABLES LIKE '%sche%'; -- 查看定时器状态
主从配置mysql

grant all privileges on *.* to 'root'@'%' identified by 'root';
flush privileges;
主服务器10.10.6.169

grant replication slave on *.* to 'testuser'@'10.10.6.141' identified by '12345678';
flush privileges;

vi /etc/my.cnf
[mysqld]下添加以下参数,若文件中已经存在,则不用添加
server-id=1  
log-bin=mysql-bin  #启动MySQL二进制日志系统,
binlog-do-db=ourneeddb  #需要同步的数据库
binlog-ignore-db=mysql  #不同步mysql系统数据库,若还有其它不想同步的,继续添加
重启数据库

mysql>  show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 |      107 | bak          | mysql            |
+------------------+----------+--------------+------------------+

导出数据库
flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入
unlock tables; #解除锁定
导出数据库结构及数据:mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql
导出存储过程及函数 :mysqldump -uroot -p -ntd -R ourneeddb > ourneeddb_func.sql
tips:-ntd导出存储过程、-R导出函数

从服务器10.10.6.141

[mysqld]下添加以下参数,若文件中已经存在,则不用添加
server-id=2  #设置从服务器id,必须于主服务器不同
log-bin=mysql-bin  #启动MySQ二进制日志系统
replicate-do-db=ourneeddb  #需要同步的数据库名
replicate-ignore-db=mysql  #不同步mysql系统数据库
[root@localhost~ ]/etc/init.d/mysqld restart #重启服务
use mysql 
stop slave;
change master to
      master_host='10.10.6.169',
      master_user='testuser',
      master_password='12345678',
      master_log_file='mysql-bin.000008',
      master_log_pos=107;  #log_file与log_pos是主服务器master状态下的File与Position
start slave;
show slave statusG;

Unknown character set: 'utf8mb4'错误

高版本sql到低版本的报错,修改utf8mb4 为utf8

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Mysql 建表时报错 invalid ON UPDATE clause for 'create_date' column

版本问题

`update_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

ON UPDATE CURRENT_TIMESTAMP 可以删除

MySql access denied for user

1.以为是没授权。结果添加了也报错,发现是密码错误

使用

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

FLUSH PRIVILEGES;

5.7 以后修改密码

update mysql.user set authentication_string=password('root') where user='root';

5.7以前修改密码

update mysql.user set password=password('root') where user='root';

免密码登录

/usr/bin/mysqld_safe --skip-grant-tables  然后开启另一个窗口操作

使用后如果提示操作无法执行先刷新权限FLUSH PRIVILEGES;

数据库备份

mysqldump -u root -p lianxun_coupon > /data/lianxun_coupon.sql

原文地址:https://www.cnblogs.com/maoxianfei/p/8087228.html