如果你有一个苹果,我有一个苹果,我们交换以后还是一人一个苹果,但如果你有一种思想,我有一种思想,我们交换以后,每个人便拥有了两种思想。

发布新日志

  • 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 -p

        mysql> 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
Open Toolbar