标签:mysql基础命令入门
/etc/init.d/mysqld start mysqld_safe --defaults-file=/etc/my.cnf 2>&1 > /dev/null &
/data/3306/mysql start mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
/etc/init.d/mysqld stop
/data/3306/mysql stop mysqladmin -uroot -p123456 -S /data/3306/mysql.sock shutdown
killall mysqld pkill mysqld killall -9 mysqld kill -9 PIDNUMBER
q 【注意】
1. 用killall关闭,要直到出现mysqld: no process killd 表示操作完成
2. 强制关闭命令在生产情况下一般不使用
3. 尽量不要采用粗鲁野蛮的方式杀死数据库,生产高并发的环境可能会引起数据丢失
mysql ==》刚装完数据库时,无需密码的登入命令 mysql -uroot ==》刚装完数据库,无需密码的登入命令 mysql -uroot -p ==》标准的命令行登入命令 mysql -uroot -p123456 ==》这种方法一般不使用,密码明文会泄漏密码
mysql -S /data/3306/mysql.sock ==》无密码的登入命令 mysql -uroot -p123456 -S /data/3306/mysql.sock ==》带密码的登入命令
[root@db01 ~]# HISTCONTROL=ignorespace
q 【注意】
若想永久生效只需加入/etc/profile中即可
quit exit Ctrl+c
mysqladmin -uroot password "123456" ==》命令行操作 mysql> set password=password('123456'); ==》进入mysql操作
mysqladmin -uroot -S /data/3306/mysql.sock password "123456" ==》命令行操作 mysql> set password=password("123456"); ==》进入mysql操作
mysqladmin -uroot -p123456 password "3306" ==》命令行操作 mysql> update mysql.user set password=password("123456") where user='root' and host="localhost"; ==》进入mysql操作
mysqladmin -uroot -p123456 -S /data/3306/mysql.sock password "3306" ==》命令行操作 mysql> update mysql.user set password=password("123456") where user='root' and host='localhost'; ==》进入mysql操作
/etc/init.d/mysqld stop ==》停止数据库 mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-table 2>&1 >/dev/null & ==》绕过授权表 mysql ==》登录mysql不需要密码 mysql> update mysql.user set password=password("123456") where user='root' and host='localhost'; ==》设置新的密码 mysql> flush privileges; ==》刷新数据库的权限 mysql> quit ==》退出数据库 /etc/init.d/mysqld start ==》启动数据库 mysql -uroot -p123456 ==》重新登录即可
/data/3306/mysql stop ==》停止数据库 mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table 2>&1 >/dev/null & ==》绕过授权表 mysql -S /data/3306/mysql.sock ==》登入mysql mysql> update mysql.user set password=password("3306") where user='root' and host='localhost'; ==》设置新的密码 mysql> flush privileges; ==》刷新数据库的权限 mysql> quit ==》退出数据库 /data/3306/mysql start ==》启动数据库 mysql -uroot -p3306 -S /data/3306/mysql.sock ==》重新登录即可
mysql> show databases; ==》显示所有数据库 mysql> help show; ==》查看帮助方法
mysql> use mysql; mysql> help use;
mysql> create database LZH; mysql> help create database; ==》查看帮助 Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
mysql> drop database LZH; mysql> help drop database; ==》查看帮助 Syntax: DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
mysql> select database();
mysql> show tables;
mysql> show create database lzh\G
mysql> drop user "root"@"::1"; mysql> drop user ""@"db02"; mysql> drop user "root"@"db02"; mysql> drop user ""@"localhost";
mysql> create user 'lzh'@'localhost' identified by '123456'; mysql> grant all on oldboy.* to 'lzh'@’localhost’;
mysql> grant all on oldboy.* to 'lzh'@'localhost' identified by '123456';
mysql> select user from mysql.user; mysql> select user,host from mysql.user;
mysql> create table test( -> id int(4) primary key AUTO_INCREMENT, -> name char(20) NOT NULL -> )ENGINE=innodb default charset=gbk; mysql> help create table;
列类型 | 需要的存储量 |
TINYINT | 1字节 |
INT | 4字节 |
BIGINT | 8字节 |
SMALLINT | 2字节 |
MEDIUMINT | 3字节 |
INTEGER | 4字节 |
FLOAT | 4字节 |
列类型 | 需要的存储量 |
DATE | 3字节 |
TIMESTAMP | 4字节 |
DATETINE | 8字节 |
TINE | 3字节 |
YEAR | 1字节 |
列类型 | 需要的存储量 |
CHAR(M) | 1=<M<=255字节 |
VARCHAR | |
BLOG,TEXT |
q INT型:正常大小整数类型
q CHAR型:定长字符串类型,当存储时,总是用空格填满右边到指定的长度
q VARCHAR型:变长字符串类型
mysql> desc test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | name | char(20) | NO | | NULL | | +-------+----------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
mysql> alter table test add dept char(20) after id; == 》在某个字段之后加入
默认是在最后插入字段
mysql> show create table test\G *************************** 1. row *************************** Table: test Create Table: CREATE TABLE `test` ( `id` int(4) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk 1 row in set (0.00 sec) 5.4 插入数据 mysql> insert into test values(1,'oldboy'); mysql> insert into test(name) values('oldgirl'); mysql> insert into test values(3,'zuma'),(4,'keke'),(5,'icna');
mysql> truncate table test; mysql> delete from test;
mysql> create index index_name on test(name); mysql> alter table test add index index_name(name);
mysql> alter table test add index index_name_dept(name,dept);
mysql> alter table test change id id int primary key auto_increment; ==》创建 mysql> alter table test drop primary key;
mysql> alter table test add index index_name(name(8));
mysql> alter table test add unique index_name(name);
mysql> alter table test drop index index_name;
mysql> show index from test\G
因为索引不但占用系统空间,而且在更新数据时还需要维护索引数据的,因此索引是把双刃剑,并不是越多越好,譬如数十到几百行的数据就不需要建立索引,插入更新频繁,读取比较少的索引需要建立索引。
select user,host from mysql.usre where password= 索引一定要建在where后的条件列上,并且要尽量选择在唯一值多的大表上的列建立索引。
q 索引类似书籍的目录,会加快查询的速度
q 要在表的列上创建索引
q 索引会加快查询速度,但是也会影响更新的速度,因为更新要维护索引数据
q 索引列并不是越多越好,要在频繁查询的表语句where后的条件列上创建索引
q 小表或重复值很多的列上可以不建立索引,要在大表以及重复值少的条件列上创建索引
q 多个联合索引有前缀生效特性
q 当字段前N个字符已经接近唯一时,可以对字段前N个字符创建索引
q 索引从工作方式区分,有主键、唯一、普通索引
q 索引类型会有BTREE(默认)和hash(适合做缓存(内存数据库))等
mysql> select * from test; mysql> select * from oldboy.test;
mysql> select * from test limit 2;
mysql> select * from test limit 1,2; mysql> select * from test limit N,M;
mysql> select * from test where id=1; mysql> select * from test where name='kaka';
mysql> select * from test where id=5 and name='kaka'; mysql> select * from test where id=1 or name='kaka'; mysql> select * from test where id>2 and id<5;
mysql> select * from test order by id desc; ==》按照逆序排序 mysql> select * from test order by id asc; ==》按照正序排序 默认是正序
mysql> select version(); mysql> select user(); mysql> select now(); ==》查询时间 mysql> select curdate(); ==》查询时间 mysql> select curtime(); ==》获取当前的时间
标签:mysql基础命令入门
原文地址:http://blog.51cto.com/lzhnb/2126348