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