/ 中存储网

Linux下MySQL数据库的常用操作

2014-07-13 15:58:25 来源:中存储网
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>CREATE DATABASE dbname;

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:wcnc_db.sql  (注:如果写成source d:"wcnc_db.sql,就会报语法错误)

5、远程访问MySQL的设置
   mysql默认是不允许远程连接的,因为有很大的安全隐患,所以需要手动增加可以远程访问数据库的用户。
   mysql -u root -p
   grant select,insert,update,delete on *.* to root@"202.11.10.253" Identified by "dboomysql";
----允许地址202.11.10.253上用root用户,密码dboomysql来连接mysql的所有数据库,付给 select,insert,update,delete权限。
   grant all on *.* to root@"202.11.10.253" Identified by "dboomysql"
----允许地址202.11.10.253上用root用户,密码dboomysql来连接mysql的所有数据库,付给所有权限。
   GRANT ALL PRIVILEGES ON dbname.* TO db_root_name@"%" IDENTIFIED BY "db_root_passwd";
   ----让用户有从任意地址访问某数据库的全部权限
   还可能需要修改配置文件:
   vi /etc/mysql/my.cnf
   bind-address = 127.0.0.1 --> bind-address = 0.0.0.0

6、修改密码
   mysqladmin -u root password 'newpassword' 更改密码

7、显示中文乱码解决,修改my.cnf
  [client]
  default-character-set=GBK
  [mysqld]
  default-character-set=GBK
  init_connect='SET NAMES gbk'
  或者执行以下语句:
  SET character_set_client = utf8 ;
  SET character_set_connection = utf8 ;
  SET character_set_database = utf8 ;
  SET character_set_results = utf8 ;
  SET character_set_server = utf8 ;

  SET collation_connection = utf8 ;
  SET collation_database = utf8 ;
  SET collation_server = utf8 ;

  使用命令 SHOW VARIABLES LIKE 'character%';查看数据库编码
需要特别注意,如果是SUPER用户比如root进行数据库连接查询,则上述配置中的init_connect不会起作用,
  此时只能在查询数据库前先执行:mysql_query('SET NAMES gbk');才可以。