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 status\G;
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