当前位置:首页 » 数据库存储

mysql常用操作

2004-12-08 00:32 本站整理 浏览(13)
mysql常用操作
1、增加了密码后的登录格式如下:  
  mysql -u root -p
  
2、修改登录密码
  1) mysqladmin -u用户名 -p旧密码 password 新密码  
    例:mysqladmin -u root password 21century
    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
    或
    mysql -u root -p
mysql -u root -p
    mysql>set password for root=password("456");
    如果是用root进入的,可以简写成:set password=password(“456“);
  2)直接修改user表的root用户口令:
   mysql> user mysql;
   mysql> update user set pasword=password('21century') where user='root';
   mysql> flush privileges;    /* 强制刷新内存授权表,否则用的还是缓冲中的口令 */
   注:password('21century')表示用MD5对密码21century进行加密,这时在表中看到的密码都是一长串字母,增加了安全性。

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 &)
        4种启动方式任选一种:
        1) service mysql start
        2) /etc/rc.d/init.d/mysql start
        3) mysqld_safe
        4) safe_mysqld
   停止:3种放松任选一种:
        1) service mysql stop

       2) /etc/rc.d/init.d/mysql stop
       3) mysqladmin -u root -p shutdown
   
5、导出和导入meeting数据库:
    导出:
   1) 例1. 将数据库meeting中的表全部备份到 meeting_200409.sql 文本文件 
      mysqldump -uroot -p --opt meeting > meeting_200409.sql

   2) 例2. 仅备份数据库school中的一部分表teacher 和 student 

      mysqldump -uroot -p --opt school teacher student > school_teacher_student_200409.sql

   3) 例3. 备份多个数据库 
      mysqldump --databases school test > school_test_200409.sql
   数据恢复:
   1) 例1. 数据库school不慎被破坏,从school_200409.sql 备份文件中恢复数据 
      mysql>create database school;
      mysql>use school;
      mysql>source school_200409.sql ;  # 恢复
   2) 例2.恢复表teacher 和 student 
      mysql>use school;
      mysql>source school_teacher_student_200409.sql ;  # 恢复
   3)例3. 恢复多个数据库 
     mysql>source school_test_200409.sql;  # 恢复 例1. 数据库school不慎被破坏,从school_2004_9.sql 备份文件中恢复数据 mysql
mysql  例1. 数据库school不慎被破坏,从school_2004_9.sql 备份文件中恢复数据 mysqlmysql 

   
   导入:
   1) 导入dbname数据库
       mysqldump -uroot -p21century dbname < xxx.sql   
   2) 导入数据库还可用类似于oracle中@my_script.sql的方式一次执行大量sql语句,这在使用mysqldump不起作用时非常有用。
       例:#./mysql -uroot -p < /home/xuys/db_meeting_2003.sql 
      (注:create database、use databasename、create table和insert into语句都可写在上面的脚步文件中)
   3) 使用数据传入命令。
      mysql> load data infile '/tmp/teacher.txt' into table teacher; 
      (注:teacher.txt中的数据必须使用Tab键分隔,table是数据库名,teacher是表名)
   4) 使用mysqlimport
      mysqlimport school /tmp/teacher.txt
      (注:上面的命令表示将teacher.txt中的数据导入到school这个数据库中的teacher表中去。
           school表示数据库名,文本文件的名称就是该文件要插入的基表的名称,本本文件中样使用Tab键分隔。)
     
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;
    alter table t2 drop column col2;

9、增加用户
    GRANT select,update,insert ON 数据库名.表名 TO 用户名@登录主机 identified by "密码"        
   例1:grant select,update,insert,delete on *.* to test@dev identified by "abc";
   例2:grant select,update,insert,delete on *.* to test@% identified by "abc";
        /* %表示任何主机,localhost表示本地主机 */
   例3:创建一个本地的完全的超级用户admin,口令为'123'
       grant all privileges on *.* to admin@localhost identified by '123'

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就可以用新口令登陆了。

12、mysql的数据类型中date表示日前字段,它是不带时分秒的,如果要让日前带上时分秒,需要使用datetime类型。