mysql备用知识
一:修改mysql的密码
1. 使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。
2. 使用mysqladmin, mysqladmin -u root -p password mypasswd
3. mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> FLUSH PRIVILEGES
4. mysql> SET PASSWORD FOR username@"% " = PASSWORD('password');
这里的username是要修改的用户名称。
5. mysql> GRANT USAGE ON *.* TO username@"% " IDENTIFIED BY 'password';
这里的username是要修改的用户名称。
该表的localhost属性指定了用户的访问来源,如果是不限制机器IP,可以设置成'%',也可以指定具体的IP地址。
通过修改该表用户对应的localhost属性值为'%',问题解决了。
?
有时候还不行的话,是权限不够,所以再执行以下语句一般就OK了。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
FLUSH?PRIVILEGES三,导入数据报"invalid string value"错误
我的数据库编码为GBK,利用navicat 从一张原有表里导出数据为sql脚本文件,后来将该表数据重新插入时,就报该错误。开始怀疑是数据库编码问题,重新安装数据库设置编码为GBK依然报错。后来经提醒,本地文件的编码是否正确。忽然想起来,我之前好像碰到过这个问题,检查后发现该sql文件的编码问题UTF-8,使用记事本另存为ANSI(本地编码),问题解决。
?
四,导入导出数据库
?
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/mysqldump -uroot -p -d abc > abc.sql
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
注意:有命令行模式,有sql命令
?