mysql小结常用知识点

来源:互联网 发布:snmp采集哪些数据 编辑:程序博客网 时间:2024/05/21 10:34


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

  1. sudo vi /etc/my.cnf  
  2. bind-address = 127.0.0.1 

设置mysql 字符集 charset

  1. sudo vi /etc/my.cnf 
  2. 在[mysqld]下面加入一行 
  3. character_set_server = utf8 
  4. 在[mysql]下面加入一行 
  5. default-character-set = utf8 
  6. sudo /usr/local/mysql/support-files/mysql.server restart 
  7. mysql -uroot -p1 
  8. mysql> status 
  9. Server characterset:    utf8 
  10. Db     characterset:    utf8 
  11. Client characterset:    utf8 
  12. Conn.  characterset:    utf8 
  13. mysql> show variables like 'character_set%'; 
  14. +--------------------------+----------------------------------+ 
  15. | Variable_name            | Value                            | 
  16. +--------------------------+----------------------------------+ 
  17. | character_set_client     | utf8                             | 
  18. | character_set_connection | utf8                             | 
  19. | character_set_database   | utf8                             | 
  20. | character_set_filesystem | binary                           | 
  21. | character_set_results    | utf8                             | 
  22. | character_set_server     | utf8                             | 
  23. | character_set_system     | utf8                             | 
  24. | character_sets_dir       | /usr/local/mysql/share/charsets/ | 
  25. +--------------------------+----------------------------------+ 
  26. 8 rows in set (0.00 sec) 

mysql自动提示,命令自动完成,语法提示

  1. sudo vi /etc/my.cnf 
  2. 找到[mysql] 
  3. [mysql] 
  4. #no-auto-rehash 
  5. auto-rehash 
  6. sudo /usr/local/mysql/support-files/mysql.server restart 
  7. mysql -uroot -p1 
  8. use mysql 
  9. 必须先use一个库,按tab键才能自动提示。 



原创粉丝点击