mysql的常用命令以及备份和恢复
时间:2008-10-13 来源:hanyang016
下面步入正题,介绍下sql常用操作:
创建库表和查询插入删除记录的操作很熟悉,就不作介绍了。这里主要说一下对用户和密码的操作,这些操作也很重要,尤其在刚开始使用数据库时很有用。
登录MYSQL
>mysql -u root -p
>密码
创建用户
mysql> mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
ject) values("localhost","fred",password("love"),'','','');
创建后的用户名为:fred 密码为:love
创建数据库(test)
mysql>create database test;
将test数据库的所有权限授权给用户fred
>grant all privileges on test.* to fred@localhost identified by 'love';
刷新系统权限表
mysql>flush privileges;
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to fred@localhost identified by 'love';
刷新系统权限表
mysql>flush privileges;
修改指定用户密码。
>mysql -u root -p
>密码
mysql>update mysql.user set password=password('新密码') where User="fred" and Host="localhost";
mysql>flush privileges;
删除用户。
>mysql -u root -p
>密码
mysql>DELETE FROM user WHERE User="fred" and Host="localhost";
mysql>flush privileges;
删除用户的数据库
mysql>drop database test;
其它一些有用的操作:
列出所有数据库
mysql>show database;
切换数据库
mysql>use '数据库名';
列出所有表
mysql>show tables;
显示数据表结构
mysql>describe 表名;
删除数据库和数据表
mysql>drop database 数据库名;
mysql>drop table 数据表名;
1.关于自增字段重新赋初值的问题?
ALTER TABLE tbl AUTO_INCREMENT = 1;
2.如何实现mysql中自增长字段的功能?
create table abc(id int(10) not null auto_incremnet primary key,
name varchar(10) not null,
address varchar(200) not null,
postcode char(6) not null
);
这样就创建了一个表,这个表的id子段是自动增长的。
你还可以在一建好的表中增加这样的字段,操作如下:
alter table tb_name add id int(10) not null auto_increment first;
或者
alter table tb_name add id int(10) not null auto_increment;
3、如何更改mysql中用户密码?
a、在mysql/bin/目录下面
./mysqladmin -u[用户名如:root] -p[旧密码,如果没有密码留空] password [新密码]
./mysqladmin -uroot -p123456 password 456789
其中 用户名: root 原来密码: 123456 新密码: 456789
b、以root用户进入mysql
mysql> use mysql
mysql>update user set Password=password('newpassword') where User='root';
mysql>flush privileges;
注意大小写。
4、如何远程连接mysql
(1)进入mysql,创建一个新用户xuys:
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to [email protected]
identified by "xuys1234";
查看结果,执行:
use mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的xuys用户。host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以xuys用户登录到mysql服务器,建议在开发时设为%。
update user set host = '%' where user = 'xuys';
(2) mysqladmin -uroot -ppwd reload
mysqladmin -uroot -ppwd shutdown
(3)./mysqld_safe --user=root &
记住:对授权表的任何修改都需要重新reload,即执行第3步。
如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,
在mysql数据库的db表中插入一条记录:
use mysql;
insert into db values
('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
重复执行上面的第2、3步。
MySQL数据库备份与恢复 |
首先建立一个计划并严格遵守,定期实施备份。
让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。 举例:
C:\>mysqldump dzzw -u root -p > d:\buckupdb\dzzw\dzzw2040728.sql
输出文件的开头看起来象这样:
--
CREATE TABLE a_catalog (
--
INSERT INTO a_catalog VALUES ('sdaf','sadf','sadf','asdf','asdf','000','Y','2004-05-25 09:02:34');
C:\>mysqldump dzzw a_catalog -u root -p > d:\buckupdb\dzzw\a_catalog2040728.sql
C;\>
--
CREATE TABLE a_catalog (
--
INSERT INTO a_catalog VALUES ('sdaf','sadf','sadf','asdf','asdf','000','Y','2004-05-25 09:02:34');
C:\>mysqldump dzzw a_catalog --opt -u root -p > d:\buckupdb\dzzw\a_catalog204072
C:\>
输出文件的开头看起来象这样:
--
2.使用直接拷贝数据库的备份方法
二、.数据恢复
举例:
然后将备份的数据导入
进入mysql 建立用户hs Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> grant select,insert,update,delete on dzzw.* to hs identified by 'hsoft';
这样就成功恢复了数据库dzzw; Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> grant select,insert,update,delete on dzzw.* to hs identified by 'hsoft'; 这样就成功恢复了数据库dzzw; |
windows下的数据库备份脚本
d:\mysql\bin\mysqldump -uroot -pcreymm --all-databases > d:\mysql\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql
d:\mysql\bin\mysqldump -uroot -pcreymm --all-databases > d:\mysql\%date:~0,4%%date:~5,2%%date:~8,2%%.sql
把password替换为你的密码,然后存成backup.cmd 或者 backup.bat 就可以按日期存储备份了
可根据情况调整日期和时间,比如调整为只显示日期 如下
d:\mysql\bin\mysqldump -uroot -ppassword paper > d:\mysql\%date:~0,4%%date:~5,2%%date:~8,2%%.sql
d:\mysql\bin\mysqlcheck --all-databases --auto-repair -uroot -pcreymm 把password替换为你的密码,然后存成repair.cmd 或者 repair.bat 就可以修复所有数据库了
mysqldump -uroot -p --all-databases > d:\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql
如果要用到IP地址,端口号的话
cd C:\Program Files\MySQL\MySQL Server 4.1\bin
mysqldump.exe -h127.0.0.1 -uroot -padmin!@# -P3307 -t plonesite >d:\plonesite-%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql