Mysql 常见问题汇总
1、Mysql errono 1005 : 主外键不是完全一致 , 请检查如下几点:
a、字段是否存在
b、类型是否一致(注意unsigned , powerdesign 生成问题)
c、数据库引擎是否一致
d、字符编码是否一致
e、windows平台下注意修改lower_case_table_names = 0, windows本身不区分文件大小写,改为0之后就区分了可能造成找不到引用的表
2、Mysql errono 121: 外键约束名称重复
3、记录 Mysql WorkBench 中单词缩写意义:
PK: primary key (column is part of a pk)
NN: not null (column is nullable)
UQ: unique (column is part of a unique key)
AI: auto increment (the column is auto incremented when rows are inserted)
BIN: binary (if dt is a blob or similar, this indicates that is binary data, rather than text)
UN: unsigned (for integer types, see docs: “10.2. Numeric Types”)
ZF: zero fill (rather a display related flag, see docs: “10.2. Numeric Types”)
4、mysql 权限设置
//添加远程主机访问MYSQL root权限
insert into user(host,user,password) values('%','root',PASSWORD('root'));
//root 权限授权
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
//更新权限设置
flush privileges;
5、防火墙设置
//打开端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
//保存
/etc/rc.d/init.d/iptables save
//查看状态
/etc/init.d/iptables status
6、开机自动运行(实现类似Windows服务)
/sbin/chkconfig --level 2345 mysqld on
/sbin/chkconfig --list
结果如下:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
===================================================================================================================================
进入 安装目录.../bin/mysql.exe
cd 更换目录 dir列出当前目录所有文件
c:\vesa\...\a> 尖括号表示在c盘/的vasa/的.../的a 文件夹里面
cd空格.. 表示向上一级目录
cd空格目录名 表示进入指定目录
cd空格ted健 表示顺序查看目录名
>mysql 空格 -u用户名 -p密码 (即通过用户名 密码连数据库)
show databases; 显示所有数据库
use 数据库名; 表示进入数据库
show tables; 显示所有数据表
select * from 数据表名; 查看数据表里的数据
插入:insert into 字段名(省略不写的表示所以字段)values 值; (字段名1->值1 字段名2->值2...顺序一样个数一样)
更新:update 表名 set 字段名 = 值; (where 字段名=值 and 字段名=值)
查询:select 字段列表 from 表名;(where 字段名=值 and 字段名=值)
删除:delete from 表名;(where 字段名=值 and 字段名=值)
创建数据库:create database 数据库名;
删除列表:drop table 表名 ...;
删除数据库:drop database 数据库名;
查看表属性:describe 表名;
修改表属性:alter table 表名 modify column 字段名 类型;
修改表名:rename table 原表名 to 以后的表名;
增加表列:alter table 表名 add 类型 .. ..;
删除表列:alter table 表名 drop column 列名;
创建数据表:create table 数据表名(项名 类型 . .,项名 类型 . .,......);
===================================================================================================================================
MYSQL 事件高度器
要查看当前是否已开启事件调度器
SHOW VARIABLES LIKE 'event_scheduler';
开启事件高度器
SET GLOBAL event_scheduler = 1;
创建事件
语法:
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
实例:
CREATE EVENT updateInfoStatus
ON SCHEDULE EVERY 30 MINUTE
DO
UPDATE `jd_article` SET `status` = 0 WHERE `status` = 1 AND `date` <= now( );
修改事件
语法:
ALTER EVENT event_name
[ON SCHEDULE schedule]
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
实例:
ALTER EVENT updateInfoStatus
ON SCHEDULE EVERY 30 MINUTE
DO
UPDATE `jd_article` SET `status` = 0 WHERE `status` = 1 AND `date` <= now( );
删除事件
DROP EVENTS IF EXISTS updateInfoStatus
临时关闭事件
ALTER EVENTS updateInfoStatus DISABLE
开启事件
ALTER EVENTS updateInfoStatus ENABLE
查看事件详细信息
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'updateInfoStatus' AND EVENT_SCHEMA = 'jdwc'
查看所有事件
SHOW EVENTS
查看事件创建信息
SHOW CREATE EVENT updateInfoStatus
======================================================================================
MySQL设置密码有很多方法:
1.用root 进入mysql后
mysql>set password =password('你的密码');
mysql>flush privileges;
2.使用GRANT语句
mysql>grant all on *.* to 'root'@'localhost' IDENTIFIED BY '你的密码'with grant option ;
mysql>flush privileges;
3.进入mysql库修改user表
mysql>use mysql;
mysql>update user set password=password('你的密码') where user='root';
mysql>flush privileges;
======================================================================================
设置mysql监听外网ip
设置mysql 字符集 charset
mysql自动提示,命令自动完成,语法提示