-
Mysql自动备份脚本
2008-10-04 22:31:05
找到一个Mysql自动备份脚本大家需要的话可以自己根据需求参考修改一下
该脚本功能介绍:可以将这个脚本放进crontab,每天凌晨执行一次,自动备份,支持多种备份方式,自动翻转。
该脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#!/bin/bash
#This is a Shellscrīpt For Auto DB Backup
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >;>; $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >;>; $LogFile
echo "--------------------------" >;>; $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >;>; $LogFile 2>;&1
echo "[$OldFile]Delete Old File Success!" >;>; $LogFile
else
echo "[$OldFile]No Old Backup File!" >;>; $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >;>; $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName >; $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName >; $DumpFile
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >;>; $LogFile 2>;&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >;>;$LogFile 2>;&1
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >;/dev/null 2>;&1
tar czvf $NewFile $DBPath$DBName >;>; $LogFile 2>;&1
/etc/init.d/mysqld start >;/dev/null 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
;;
esac
fi
echo "-------------------------------------------" >;>; $LogFile -
MySql数据库用户管理命令
2008-09-12 13:45:54
1、修改mysql中root的密码
mysql -u root -pmysql> update user set password=password("xueok654123") where user='root';
mysql> flush privileges //刷新数据库
mysql>use dbname; 打开数据库:
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>describe user; 显示表mysql数据库中user表的列信息);
2、grant命令用法
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql> grant all privileges on *.* touser@localhostidentified by ’something’ with增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
GRANT ALL PRIVILEGES ON *.* TOmonty@localhostIDENTIFIED BY ’something’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TOmonty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
grant all privileges on dbtest.* to aaa@localhost identified by 'aaa' with grant option;删除授权
mysql> revoke all privileges on *.* fromroot@”%”;
mysql> delete from user where user=”root” and host=”%”;
mysql> flush privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@it363.com identified by 'passwd' -
MySql数据库用alter table语句修改表的结构
2008-09-09 18:56:48
有时你可能需要改变一下现有表的结构,那么Alter Table语句将是你的合适选择。
增加列
alter table tbl_name add col_name type
例如,给表增加一列weight
mysql>alter table pet add weight int;
删除列
alter table tbl_name drop col_name
例如,删除列weight:
mysql>alter table pet drop weight;
改变列
alter table tbl_name modify col_name type
例如,改变weight的类型:
mysql> alter table pet modify weight samllint;
另一种方法是:
alter table tbl_name change old_col_name col_name type
例如:
mysql> alter table pet change weight weight samllint;
给列更名
mysql>alter table pet change weight wei;
给表更名
alter table tbl_name rename new_tbl
例如,把pet表更名为animal
mysql>alter table pet rename animal; -
mysqldump的几种用法
2008-09-08 18:06:02
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql
5.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql
进入MYSQL数据库
use bbs; Use bbs //要导的数据库
Source /var/mysqldata/mysql2007.sql 执行导入
或是: mysql -uusername -ppasswd --one-database bbs -
mysql 用户管理命令
2008-09-04 13:38:28
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp 用户数据库:phplampDB
1.新建用户。
//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功
2.为用户授权。
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作
/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/
3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges; -
MySQL导出导入命令的用例
2008-09-04 12:29:24
1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:wcnc_db.sql
-
mysql常用操作
2008-09-04 11:27:52
1、增加了密码后的登录格式如下:
mysql -u root -p
2、修改登录密码
1) mysqladmin -u用户名 -p旧密码 password 新密码
例:mysqladmin -u root password 21century
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2)直接修改user表的root用户口令:
mysql> user mysql;
mysql> update user set pasword=password(’21century’) where user=’root’;
mysql> flush privileges;
注:flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令。3、测试密码是否修改成功
1)不用密码登录
[root@test1 local]# mysql
ERROR 1045: Access denied for user: ‘root@localhost’ (Using password: NO)
显示错误,说明密码已经修改。
2)用修改后的密码登录
[root@test1 local]# mysql -u root -p
Enter password: (输入修改后的密码21century)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 177 to server version: 3.23.48
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
成功!
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令4、启动和停止
启动:Mysql从3.23.15版本开始作了改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。
如果非要用root用户来启动,必须加上–user=root参数
(./safe_mysqld –user=root &)
停止:mysqladmin -u root -p shutdown
5、导出meeting数据库:
mysqldump -uroot -p21century meeting > db_meeting.sql
导人dbname数据库
mysqldump -uroot -p21century dbname < xxx.sql
导入数据库还可用类似于oracle中@my_scrīpt.sql的方式一次执行大量sql语句,这在使用mysqldump不起作用时非常有用。
例:#./mysql -uroot -p < /home/xuys/db_meeting_2003.sql
(注:create database、use databasename、create table和insert into语句都可写在上面的脚步文件中)6、给表改名
RENAME TABLE ztemp TO ztemp4;7、修改字段属性
ALTER TABLE bbabase CHANGE news_id id VARCHAR(5) NOT NULL;8、在表中的content后增加一字段
ALTER TABLE bbabase ADD leave_time DATETIME NOT NULL AFTER content;9、增加用户
GRANT select,update,insert ON 数据库名.* TO 用户名@登录主机 identified by “密码”
例:grant select,update,insert,delete on *.* to test@dev identified by “abc”;10、只需本机使用Mysql服务,在启动时还可以加上–skip-networking参数使Mysql不监听任何TCP/IP连接
(./safe_mysqld –skip-networking &),增加安全性。(非常推荐)11、忘记root密码怎么办?
在启动Mysql服务器时加上参数–skip-grant-tables来跳过授权表的验证
(./safe_mysqld –skip-grant-tables &),这样我们就可以直接登陆Mysql服务器,
然后再修改root用户的口令,重启Mysql就可以用新口令登陆了。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values('’,'glchengang’,'深圳一中’,'1976-10-10′);
insert into teacher values('’,'jack’,'深圳一中’,'1975-12-23′);注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。 (4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、数据传入命令 load data local infile “文件名” into table 表名;
注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库 。五、备份数据库:(命令在DOS的\mysql\bin目录下执行)
mysqldump –opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。最好的MYSQL教程还是“晏子“译的“MYSQL中文参考手册“不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象”PHP4中文手册”那样是chm的格式,在查找函数命令的时候不太方便。
-
简单备份恢复MySQL数据库例子
2008-09-03 23:38:38
1、备份
备份一个数据库
mysqldump -uxxxx -pxxxx --opt dbname > filename.sql
备份整个数据库
mysqldump -uxxxx -pxxxx --opt --all_database > filename.sql
2、恢复
恢复一个数据库
mysql -uxxxx -pxxxx dbname < filename.sql
恢复整个数据库
mysql -uxxxx -pxxxx < filename.sql -
MySql把一个数据库中的表及数据导入到另一数据库中
2008-09-03 22:59:31
1、先备份
mysqldump -uxxxx -pxxxx --opt dbname tablename > filename.sql
2、拷贝备份出来的文件filename.sql到目的机器
3、导入数据(覆盖)
mysql -uxxxx -pxxxx dbname < filename.sql
标题搜索
我的存档
数据统计
- 访问量: 219011
- 日志数: 342
- 文件数: 23
- 书签数: 10
- 建立时间: 2007-06-14
- 更新时间: 2008-12-30