MySQL使用-细节

1. insert的两种方式:①、insert方式;②、set方式

insert…on duplicate key update ….插入时如果存在记录则更新
replace into 用法

2. 没有密码情况,为MYSQL添加密码(MYSQL装完如何修改密码):  mysql  -uroot -p
回车
提示输入密码,为空回车

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

刷新权限表,输入如下命令

flush privileges;

退出

quit
3. 存储过程:
DELIMITER //  
CREATE PROCEDURE demo_in_parameter(IN start_num int, IN end_num int)  
BEGIN   
   while start_num<=end_num do
     -- TODO 处理业务
     set start_num=start_num+1;
   end while;
END;   
//  
DELIMITER ; 

-- 调用存储过程
call demo_in_parameter(1, 100000);
4. Navicat 客户端使用查询的时候出现错误navicatdesignquery.sql.bak 系统找不到指定路径

具体操作:

在连接—属性—高级。修改一下路径,改成你现在安装的navicat目录就好了

5.查看Mysql慢查询的日志

在/var/log/mysqld/slow.log:在服务器上面执行 mysqldumpslow /var/log/mysqld/slow.log  -t 10

6.查看版本命令:show VARIABLES like “%version%”

网友经验:http://blog.itpub.net/29510932/sid-179716-list-1/

7.SQL中WHERE的IF条件判断:

WHERE  IF(条件,  true执行条件, false执行条件 )

SELECT *   
FROM  `table`   
WHERE IF(  `parentID` =1,  `plan_id` <10,  `plan_id` >500 )   
LIMIT 0 , 30

8.mysql事务和锁InnoDBhttp://www.cnblogs.com/zhaoyl/p/4121010.html

9.查询死锁记录,并杀死

show processlist

NoSQL说明文档:http://blog.path8.net/wp-content/uploads/2012/01/NoSQL_database_note.pdf

10.MySQL5.7及以上版本安装后找不到默认密码文件,没办法修改连接密码:

MySQL5.7之后加强了root用户的安全性,因此在第一次安装后会初始化一个随机密码,以下为查看初始随机密码的方式,执行完该命令后则会看到一组随机字符串为初始密码,以下是查找默认密码的位置:

grep 'temporary password' /var/log/mysqld.log

执行以后有存在log文件,可是里面是空的,这是个坑,后面在网上找到跳过mysql授权直接登录了。将以下两行代码加到/etc/my.cnf文件的[mysqld]下面。重启mysql服务,就可以直接进入MySQL命令行:

skip-grant-tables #(跳过授权,只需要这句就好)
skip-networking #(本机运行,关闭MySQL的TCP/IP连接方式)

添加以上代码后重启MySQL服务:systemctl restart mysqld,然后重新登录mysql,mysql -uroot就可以直接进入修改密码;

但是修改密码还有版本号的区别,不同版本号不同的修改语句:

set password for 'root'@'localhost'=password('123456');(错误)
update user set password=password('123456') where user='root' and host='localhost';(错误)

在mysql5.7以后已经将原来的password字段改为了authentication_string了

update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';(正确)

记得刷新表的权限:

flush privileges;

更新后再把原来跳过授权的两句mysql配置去掉,重启mysql服务即可。

配置后经常想要作为远程连接,或者在虚拟机vagrant的MySQL,在PC端本地想连接,就需要设置权限:

update user set host = '%' where user ='root';

或者执行

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

0 Comments

  1. adidas yeezy

    2017年7月5日 下午12:16,

    Can I simply say what a reduction to search out someone who actually is aware of what theyre talking about on the internet. You positively know easy methods to deliver an issue to gentle and make it important. More folks must read this and perceive this side of the story. I cant consider youre no more fashionable since you positively have the gift.

Leave a comment