分类目录归档:mysql

Warning: Using a password on the command line interface can be insecure.

mysql5.6版本在执行mysqldump自动化备份的时候,由于脚本是自动化运行,所以必须在shell中写入mysql用户的密码,但是执行之后,出现如下错误:

Warning: Using a password on the command line interface can be insecure.

原因是5.6之后密码写在命令行不安全,解决方案是将用户名密码卸载配置文件中

vi /etc/my.cnf

在my.cnf中增加如下代码

[mysqldump]
host=localhost
user=username
password='password'

再次执行备份命令如下

mysqldump yourdatabase > database.sql

 

centos 7 install mysql 5.7

获取源

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

增加源

yum localinstall mysql57-community-release-el7-7.noarch.rpm

安装mysql

yum install mysql-community-server

启动数据库

 systemctl start  mysqld.service

安装完了root密码在mysql的log中,进入到/var/log目录中

more mysqld.log | grep "temporary password is generated"

这时候就会出现mysql root的初始密码了。。。记得更改一下

 

 

MySQL删除/更新数据时报1175错误

今天删除数据的时候,报了如下错误:

Error Code:1175.You are using safe update mode and you tried to update a table without a WHERE that uses a key column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.

后来查了资料,发现mysql有SQL_SAFE_UPDATES的变量,这是为了数据库操作的安全。此值默认设置为1,所以才会出现更新失败的情况。

下面是SQL_SAFE_UPDATES变量为0和1时的取值说明:

SQL_SAFE_UPDATES有两个取值0和1,

SQL_SAFE_UPDATES = 1时,不带where和limit条件的update和delete操作语句是无法执行的,即使是有where和limit条件但不带key column的update和delete也不能执行。

SQL_SAFE_UPDATES = 0时,update和delete操作将会顺利执行。

所以,出现1175错误的时候,可以先设置SQL_SAFE_UPDATES的值为0或者使用主键作为where条件删除或者更新。

Change the MySql data default directory

注意:在操作之前,要先备份好数据库。
默认情况下,MySql的数据库文件位于/var/lib/mysql下。于是想着把现在的数据库文件移动到挂载的硬盘上。找了一些办法,例如一起移动socket,datadir等等。但是移动完成后不能启动。最终找到了一个很完美的方案。 继续阅读