Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2013420
  • 博文数量: 148
  • 博客积分: 7697
  • 博客等级: 少将
  • 技术积分: 3071
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-10 23:04
个人简介

MiBDP,数据开发、项目团队、数据应用和产品在路上,金融保险、互联网网游、电商、新零售行业、大数据和AI在路上。对数仓、模型、ETL、数据产品应用了解。DTCC 2013演讲嘉宾,曾做过两款大获好评的数据产品平台。知识星球ID:35863277

文章分类
文章存档

2020年(1)

2019年(2)

2017年(2)

2016年(5)

2015年(1)

2014年(1)

2013年(6)

2012年(5)

2011年(24)

2010年(28)

2009年(1)

2008年(6)

2007年(30)

2006年(36)

分类: Mysql/postgreSQL

2010-11-22 15:15:10

第一招、mysql服务的启动和停止

net stop mysql

net start mysql(win系统)

./mysqld_safe&(PS:这个当前目录为mysql安装目录的bin目录,当前./目录一定得加,mysql很多命令都要求加)

第二招、登陆mysql

语法如下: mysql -u用户名 -p用户密码

键入命令mysql -uroot -p, 回车后提示你输入密码,(ps:mysql root初始密码为空)然后回车即可进入到mysql中,mysql的提示符是:

mysql>

注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

./mysql -umysql62 -pmypass -h 192.168.xxx.xxx

./mysql -h 192.168.xxx.xxx -umysql62 -pmypass 

这两种写法都可以,mysql也真够随意的~哈哈

第三招、增加新用户

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";

flush privileges;

如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。

如果你不想user1有密码,可以再打一个命令将密码去掉。

grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

flush privileges;

  修改原来用户的密码及删除空的用户

首先查看下用户及密码

select user,host,password from mysql.user;

更改密码:

set password for 'root'@'127.0.0.1'=password('abc123');

删除空用户:

delete from mysql.user where user='';

delete from mysql.db where user='';

flush privileges;

第四招: 操作数据库

登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。

0、显示mysql的版本信息:

status;或者直接\s;

1、 显示数据库列表。

show databases;

缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

2、 显示库中的数据表:

use mysql;(进入mysql数据库)

show tables;

3、 显示数据表的结构:

describe 表名;(ps:这个跟oracle相同,oracle可以简写为desc)

4、 建库与删库:

create database 库名;

drop database 库名;

5、 建表:

use 库名;

create table 表名(字段列表);

drop table 表名;

6、 清空表中记录:

delete from 表名;

7、 显示表中的记录:

select * from 表名;

第五招、导出和导入数据

1. 导出数据:

mysqldump --opt test > mysql.test

即将数据库test数据库导出到mysql.test文件,后者是一个文本文件

如:mysqldump -u root -p123456 --databases dbname > mysql.dbname

就是把数据库dbname导出到文件mysql.dbname中。

2. 导入数据:

mysqlimport -u root -p123456 < mysql.dbname。

不用解释了吧。

3. 将文本数据导入数据库:

文本数据的字段数据之间用tab键隔开。

use test;

load data local infile "文件名" into table 表名;

4.导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

5.mysql限制记录的数量(相当于oracle的rownum,sqlserver的top,informix的first)

select * from table limit 0,1;(0是代表记录的偏移量,说简单点就是从第几天记录开始,初始位置为0,1是代表取多少条记录)这是常规的写法,另外mysql还有其他的写法:

select * from table limit 2 offset 1;

注意mysql的第一条记录偏移量为0

6.mysql很牛X的linux时间戳与日期之间转换的函数

6.1 UNIX_TIMESTAMP(date)  

如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。  

mysql> select UNIX_TIMESTAMP();  

-> 882226357  

mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');  

-> 875996580  

当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。

6.2 FROM_UNIXTIME(unix_timestamp)  

以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串还是数字上下文中被使用。  

mysql> select FROM_UNIXTIME(875996580);  

-> '1997-10-04 22:23:00'  

mysql> select FROM_UNIXTIME(875996580) + 0;  

-> 19971004222300

7.mysql安装时的配置文件选项

./configure --prefix=/opt/mysql --enable-assembler --enable-profiling --with-charset=utf8  --with-extra-charsets=latin1,gbk,gb2312 --with-zlib-dir=bundled --with-big-tables  --with-plugins=partition,daemon_example,myisam,federated,myisammrg

8.在命令行下将Mysql查询结果写入到文件

方法1:#>/usr/local/mysql/bin/mysql -uroot -proot -h localhost xxx库 -e " select * from xxx表 limit 1" >> out.txt

方法2:#>echo "select * from xxx表 limit 1" | /usr/local/mysql/bin/mysql -h 127.0.0.1  -uroot -proot xxx库 > /home/out.txt

方法3:mysql>select * from xxx表 INTO OUTFILE './xxx.txt';

前两种都是在系统命令行下执行

方法3需要登录到mysql并use数据库,生成的文件只能放在mysql的数据目录中


PS:后即会追加更新~~

阅读(3207) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~