清空MySQL密码
更改数据库配置文件
# vi/etc/my.cnf
添加 skip-grant-tables
重启数据库
# service mysql restart
# flush privileges;
授权数据库远程访问
进入数据库
# mysql -u root -p
# usemysql
# 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 eventifnot exists eventJob
on schedule AT'2018-06-29 10:31:20'on completion PRESERVEdocall 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.169grant replication slave on*.* to 'testuser'@'10.10.6.141' identified by '12345678';
flush privileges;vi /etc/my.cnf
[mysqld]下添加以下参数,若文件中已经存在,则不用添加
server-id=1log-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