mysql 的一些积累

1. mysql 中 查询某个表位于哪个数据库:

select TABLE_SCHEMA from INFORMATION_SCHEMA.TABLES where TABLE_NAME='your_tablename';

同样,查找某个数据库中某个表是否存在:

select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='your_dbname';

 

2. 导出数据库: 

mysqldump -hhostip -Pport -uusername -ppasswd dbname > sqlfilename.sql

 

3. 导入数据库:

方法1:

 登陆mysql, 创建对应的数据库,例如:create database mydb;

导入之前导出的数据库到mydb中:  $mysql -u username -p passwd -h host -P port mydb < /absolutepath/sqlfilename.sql

 

方法2:登陆mysql,运行sql文件

 

mysql> source /absolutepath/sqlfilename.sql

 

4. 只导出数据库的各个表结构而不到处数据:

mysqldump -hhostip -Pport -uusername -ppasswd -d dbname > sqlfilename.sql

 

5. 查询一周内的数据

select * from wap_content where week(created_at) = week(now)

如果你要严格要求是某一年的,那可以这样

查询一天:http://blog.sina.com.cn/s/blog_912389e501015mv7.html

select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();

查询一周:

select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

查询一个月:

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time)

 

6. MYSQL:使用\G参数改变输出结果集的显示方式

 
   在MYSQL命令行中使用\G参数,将输出按列显示。当需要看表中各字段的值时非常有用。
   注意:在语句末尾使用时不用加分号了。否则会报No query specified。 因为他本身喜爱那个当于结尾。再加一个结尾。相当于又执行来一个空语句。
  例如获取创建表的语句:
 
 
show create table your_table_name\G

eg:
mysql> show create table user\G
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` varchar(50) DEFAULT NULL,
  `context` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
 非常好用的小技巧。
 
7. 重置root密码
   在关掉mysql,觉得root密码不太好,于是手贱的改了etc/user.root.cnf etc/user.admin.cnf两个文件里的密码,于是再次启动msyql之后,总是报告Access Denied. 数据库本身没有问题,只是权限认证过不去了。需要重置一下密码。
    1.  停止MySQL服务
     2. 使用无权限模式启动MySQL服务:mysqld_safe --skip-grant-tables --skip-networking &
     3. 登录MySQL重置密码:mysql -u your_user_name mysql
     
mysql> UPDATE user SET Password=PASSWORD('New_of_Your_Password') WHERE User='your_user_name';
mysql> FLUSH PRIVILEGES;
 
     4. 重启你的mysql就好了。 

 

你可能感兴趣的:(mysql)