Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298357
  • 博文数量: 240
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-04 18:14
文章分类

全部博文(240)

文章存档

2017年(8)

2014年(4)

2013年(15)

2012年(4)

2011年(14)

2010年(55)

2009年(140)

我的朋友

分类: Mysql/postgreSQL

2009-03-23 07:52:44

1、MySQL 如何导入导出个别需要数据记录?

-- 先导出数据所在的表结构:
mysql> show create table CHARBASE into outfile "/db/mysql/RS.sql" ;

-- 将需要单独导出的内容存放在文本文件里,这里一定要注意存放的位置必须是mysql用户有权限的位置:
mysql> select * from CHARBASE order by CHARID desc limit 15 into outfile "/db/mysql/record.sql" ;
-- (注意 into outfile 只能用于 select 语句)

-- 创建同样的表结构:
mysql> create database test;
mysql> source RS.sql;

-- 将文件数据导入新的数据库:
mysql> LOAD DATA INFILE '/db/mysql/record.sql' INTO TABLE CHARBASE;

 

2、如何导入导出一个表的内容?

-- 可以select整个表的内容,用load导入!
-- mysqldump
-- mysqldump -h127.0.0.1 -uroot -p DBNAME TableName > table.sql

 

3、如何备份还原整个数据库?

-- 备份还原整个MySQL数据库其实是最最简单的一件事情,通常我们不需要任何工具,而是把整个目录拷贝出来即可!(注意,如果是迁移服务器最好把mysql数据库也一起拷贝过去。)
-- 在拷贝完毕之后我们只要将权限做一简单设置即可:
-- chown mysql.mysql /db -R
-- mysql.server restart
-- 也可以用 mysqldump 来备份整个数据库.
-- mysqldump -h127.0.0.1 -uroot -p DBNAME > table.sql
 

4、如何用mysql命令来备份mysql数据库?

-- 如果是比较小的mysql数据库,当然也可以将整个数据库备份成一个标准的SQL脚本文件,然后还原.
-- mysqldump -h127.0.0.1 -uroot -p test > /db/mysql/test.sql;
-- create database test02;
-- use test02;
-- source /db/mysql/test.sql;

 

5、如何导出一个数据库结构,但不导出任何数据?
-- mysqldump -h127.0.0.1 -uroot -p -d RecordServer > /db/mysql/RecordServer.sql;

 

6、如何查看数据库、表、表结构、建表、建库SQL脚本?

mysql> show databases;
mysql> show tables;
mysql> desc CHARBASE;
mysql> show create table CHARBASE;
-- mysqldump -h127.0.0.1 -uroot -p -d RecordServer > /db/mysql/RecordServer.sql;

 

7、MySQL里边存放时间和存放IP地址的字段通常都是转换过的写法,请问如何查看他们本来的格式?

mysql> select CHARID,CREATEIP,CREATETIME,MAC,INET_NTOA(CREATEIP) AS IP,FROM_UNIXTIME(CREATETIME) AS TIME FROM CREATEIP WHERE CHARID=13566952;
+----------+------------+------------+-----------------+----------------+---------------------+
| CHARID   | CREATEIP   | CREATETIME | MAC             | IP             | TIME                |
+----------+------------+------------+-----------------+----------------+---------------------+
| 13566952 | 2329037786 | 1208804488 | 176940240538368 | 138.210.75.218 | 2008-04-22 03:01:28 |
+----------+------------+------------+-----------------+----------------+---------------------+
[注意]:这里得出的IP地址是不对的,正确的应该是反向的,比如上边正确的应该是 218.75.210.138 .

 

8、请举例说明如何在一个表中插入,修改或删除一个字段?

-- 在某个字段后插入:
mysql> ALTER TABLE `RELATION` ADD `COUNTRYWARKILL` int(10) unsigned NOT NULL default '0' after `ZEROCLEAR`;

-- 在最后一个字段后面插入:
mysql> ALTER TABLE `RELATION` ADD `COUNTRYWARKILL` int(10) unsigned NOT NULL default '0';

-- 删除一个字段:
mysql> alter table CHARBASE drop ZONE;    或:
mysql> alter table CHARBASE drop COLUMN ZONE;

-- 重命名字段:
mysql> alter table CHARBASE change ZONE ZONE01 integer not null default '0';

-- 如何重命名表
mysql> ALTER TABLE CHARBASE RENAME CHARNAME;

 

9、Linux 终端不支持在 MySQL 命令模式下写中文,如何解决?

-- 直接在命令中执行:
mysql -e "use RecordServer;select CHARBASE.NAME,RELATION.COUNTRYWARKILL FROM CHARBASE,RELATION WHERE CHARBASE.COUNTRY=4 AND CHARBASE.NAME LIKE '豪MeN%'"

-- 将 update 的更新中文名字的语句写入到文本文件,用source来执行:
mysql> source /db/mysql/test.sql;

-- 写成shell脚本执行:
#/bin/bash
mysql -e "use RecordServer;UPDATE RELATION SET NAME='最不厉害2' WHERE CHARID=15292694;UPDATE RELATION SET NAME='旺角口水文2' WHERE CHARID=14771293;"

-- 直接执行:
mysql -umysql -p123456 -h192.168.1.50 RecordServer -e "INSERT INTO CHARBASE (ACCID,NAME) VALUES(85164210,'Droney.zhao');"

 

10、如何对表进行插入,修改,删除的操作?

-- 对表格的插入操作:
mysql> INSERT INTO CHARBASE (ACCID,NAME) VALUES(85164210,'Droney');

-- 清空这个表:
mysql> delete from COUNTRY;

-- 删除表中的某些记录:
mysql> DELETE FROM COUNTRY WHERE ID NOT IN(2,3,4,5,6);
mysql> DELETE FROM COUNTRY WHERE NAME = 'Droney';
mysql> DELETE FROM COUNTRY WHERE NAME like '%三秦浪子%';

-- 更新表中的某些记录:
mysql> UPDATE COUNTRY SET EXP=500 WHERE ID IN(2,3,4,5,6);


11、如何重命名表?
mysql> ALTER TABLE CHARBASE RENAME CHARNAME;

12、怎么查询字段值为1的记录中相同用户的个数,只将拥有这样的记录的个数 >9 的字段显示出来?
SELECT CHARID,COUNT(*) FROM FRIEND WHERE WHICH=1 GROUP BY CHARID HAVING COUNT(WHICH)>9;


13、如何修改mysql用户密码?
mysql> use mysql;
mysql> update user set password=password('123456') where user='mysql';
mysql> FLUSH PRIVILEGES;
或者:
mysqladmin -h192.168.1.1 -uusername -poldpassword password newpassword


-- 如何添加、删除一个MySQL用户?
-- 可以用以下方法添加,建议还是用上边设置权限的方式去添加新的用户.
mysql> INSERT INTO `user` VALUES ('192.168.76.250', 'Droney', PASSWORD( '123456' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
mysql> FLUSH PRIVILEGES;


14、mysql用户密码忘记或者IP限制登录怎么办?

-- 需要重新初始化数据库.
su - dbadmin -c "/usr/local/mysql/bin/mysql_db_install"

mv /db/mysql/mysql /db/mysql/mysql_bak  &&  /usr/local/mysql/bin/mysql_db_install

chown mysql.mysql /db/ -R  &&  mysql.server restart


15、如何查看mysql数据库编码?
mysql> show variables like 'character_set_%';


16、如何建立一个表,并插入一条记录?
mysql> CREATE TABLE `SERVERLIST` (
      `ID` int(10) unsigned NOT NULL auto_increment,
      `NAME` varchar(32) NOT NULL default '',
      PRIMARY KEY  (`ID`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mysql> INSERT INTO `SERVERLIST` VALUES (1,'Droney’);


17、如何为MySQL设置访问权限?

-- 下面设置了只允许 192.168.1.0 网段连接,且添加dbadmin用户,密码123456,并删除所有密码为空的mysql用户.
mysql> GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> delete from mysql.user where password="";
mysql> flush privileges;

-- 其他设置示范:
mysql> grant all on *.* to identified by 'password';
mysql> grant all on dbname.* to identified by 'password';
mysql> grant select,insert on dbname.tablename to identified by 'password';


18、如何添加、删除一个MySQL用户?

-- 可以用以下方法添加,建议还是用上边设置权限的方式去添加新的用户.
mysql> INSERT INTO `user` VALUES ('192.168.76.250', 'Droney', PASSWORD( '123456' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
mysql> FLUSH PRIVILEGES;

 

19、如果用mysqldump导出的数据出现了乱码怎么办?
iconv -c -f UTF-8 -t GB2312 库文件名 > 新的库文件名


20、忘记了mysql 密码,我不想重新初始mysql数据库,我该怎么办?

-- 杀掉原来mysql进程,用如下命令来启动mysql,这样mysql就可以不需要密码,也没有IP限制的轻松登陆了!
mysql> /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

 

21、如何查看mysql建立的线程:
mysql> show processlist;

 

22、其它常用语句:

mysql> status   可以查看mysql的状态信息

mysql> tee history.txt 以后在mysql中操作的所有指令将被存储在history.txt文件中;

mysql> notee;   取消将指令存入文件的操作;

mysql> system clear;  可以在mysql shell下临时调用系统命令对系统文件进行操作;

-- 备份整个数据库(用cp要简单快捷一些)
mysqldump -h192.168.1.1 -uroot -p SuperServer > /SuperServer.sql;

-- 导出整个数据库结构
mysqldump -h192.168.1.1 -uroot -p -d SuperServer > /SuperServer.sql;

-- 导出表结构
mysql> show create table CHARBASE;

-- 导出表结构及内容
mysqldump -h192.168.1.1 -uroot -p -d SuperServer CHARBASE > /SuperServer.sql;

-- 导出建表结构的脚本
mysql> show create table CHARBASE;

-- 将查询的结果直接保存到文件
mysql> select * from mysql.user into outfile 'aaa.sql';

 

23 修改表结构:

-- 创建字段 NAME51 ,将该字段的位置移至 DSTZONE 之后
SQL> ALTER TABLE `CHARBASE` add `NAME51` varchar(33) NOT NULL default '';
SQL> ALTER TABLE `CHARBASE` change `NAME51` `NAME51` varchar(33) NOT NULL default '' AFTER `DSTZONE`;

 

24 创建索引:

create index ID on TEMP(CHARID);

 

25 高级查询:

CREATE TABLE `C` (
  `ID` varchar(100) NOT NULL default '',
  `NAME` varchar(100) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

update A,B set B.ID=A.ID where A.name=B.name;

insert into B(ID,NAME) select ID,NAME from A;

insert into B(ID,NAME,AGE) select ID,NAME,25 from A;

insert into C(NAME) VALUES ('zhaohang'),('zhouzhou'),('xiaoxiao');

 

26 设置自增字段的自增起始值:

Alter tableName auto_increment = 4000;

阅读(1163) | 评论(0) | 转发(0) |
0

上一篇:python 基础学习

下一篇:sed 精辟应用

给主人留下些什么吧!~~