MYSQL基础命令整理

1.开启MySQL服务

#systemctl start mysql

2.检测端口是否运行

#lsof -i :3306
#netstat -lntup |grep 3306

3.为MySQL设置密码或者修改密码

设置密码

# mysqladmin -uroot passowrd "NEWPASSWORD"

更改密码

MySQL [(none)]> use mysql;
MySQL [(mysql)]> update user set passowrd = PASSWORD('newpassword') where user = 'root';(5.7版本以下)
mysql>  update user set authentication_string=password("123456") where user='root';    (5.7以上版本)
mysql>flush privileges

msyql 5.7以上版本修改默认密码命令

MySQL [(mysql)]>alter user 'root'@'localhost' identified by 'root' ;

4.登陆MySQL数据库

#mysql -uroot -p

5.查看当前数据库的字符集

MySQL [mysql]> show create database mysql;

6.查看当前数据库版本

#mysql -V
#mysql -uroot -ppassowrd -e "use mysql;select version();"
MySQL [mysql]> select version();

7.查看当前登录的用户

MySQL [mysql]> select user();

8.创建GBK字符集的数据库wang,并查看已建库完整语句

 MySQL [mysql]>create database mingongge DEFAULT CHARACTER SET GBK COLLATE gbk_chinese_ci;

8.通过表创建用户wangwang,使之拥有增查插权限。

MySQL [mysql]> insert into user(host,user,password,Select_priv,Insert_priv,Update_priv) values ('localhost','wangwang',password('redhat'),'Y','Y','Y'); 

9.增加wangwang用户删除权限。

MySQL [mysql]> update user set  Delete_priv='Y' where user='wangwang';
MySQL [mysql]> flush privileges;
MySQL [mysql]select * from user where user='wangwang'\G;

9.创建用户wang,使之可以管理数据库wang

 MySQL [mysql]>grant all on wang.* to 'wang'@'localhost' identified by 'redhat';

10.查看创建的用户wang拥有哪些权限

 MySQL [mysql]>show grants for wang@localhost;

11.查看当前数据库里有哪些用户

 MySQL [mysql]>select user from mysql.user;

12.进入wang数据库

MySQL [mysql]> use wang;

13.创建一innodb GBK表test,字段id int(4)和name varchar(16)

MySQL [mysql]> create table test (
id int(4),
name varchar(16)
)ENGINE=innodb DEFAULT CHARSET=gbk;

14.查看建表结构及表结构的SQL语句

MySQL [wang]> desc test;
或者
MySQL [mysql]> show columns from user;
MySQL [wang]> show create table test\G;

15.插入一条数据“1,wang1”

MySQL [wang]> insert into test values('1','wang1');

16.再批量插入2行数据 “2,wang2”,“3,wang3”

MySQL [wang]> insert into test values('2','wang2'),('3','wang3');

17.查询名字为wang1的记录

MySQL [wang]>select * from test where name = 'wang1';

18.把数据id等于1的名字更改为wangwang1

MySQL [wang]> update test set name='wangwang1' where id='1';

19.在字段name前插入age字段,类型tinyint(2)

MySQL [wang]> alter table test add age tinyint(2) after id;
MySQL [wang]> update test set age='16' where name='wangwang1';

20.不退出数据库,完成备份wang数据库

MySQL [wang]> system mysqldump -uroot -predhat -B wang >/root/wang_bak.sql

21.删除test表中的所有数据,并查看

MySQL [wang]> delete from test;
MySQL [wang]> select * from test;

22.删除表test和mingongge数据库并查看

MySQL [wang]> drop table test;
MySQL [wang]> show tables;
MySQL [wang]> drop database wang;
MySQL [(none)]> show databases;

23.不退出数据库恢复以上删除的数据

MySQL [(none)]> system mysql -uroot -predhat</root/wang_bak.sql;

24.把库表的GBK字符集修改为UTF8

MySQL [wang]> alter database wang default character set utf8;
MySQL [wang]> alter table test default character set utf8;

25.把id列设置为主键,在Name字段上创建普通索引

MySQL [wang]> alter table test add primary key(id);
MySQL [wang]> create index wangindex on test(name(16));

26.在字段name后插入手机号字段(shouji),类型char(11)

MySQL [wang]> alter table test add tel char(11) after name;
MySQL [wang]> alter table test add tel char(11);

#默认就是在最后一列后面插入新增列

27.所有字段上插入2条记录(自行设定数据)

MySQL [wang]>insert into test values('5','23','li','13700000001'),('6','26','zhao','13710000001');

28.在手机字段上对前8个字符创建普通索引

MySQL [wang]> create index TEL on test(tel(8));

29.查看创建的索引及索引类型等信息

MySQL [wang]> show index from test;
MySQL [wang]> show create table test\G;

#下面的命令也可以查看索引类型 

MySQL [wang]> show keys from test\G;

30.删除Name,tel列的索引

MySQL [wang]> drop index TEL on test;
MySQL [wang]> drop index wangindex on test;

31.对Name列的前6个字符以及手机列的前8个字符组建联合索引

MySQL [wang]> create index lianhe on test(name(6),tel(8));

32.查询手机号以137开头的,名字为zhao的记录(提前插入)

MySQL [wang]> select * from test where tel like '137%' and name='zhao';

33.查询上述语句的执行计划(是否使用联合索引等)

MySQL [wang]> explain select * from test where tel like '137%' and name='zhao'\G;

34.把test表的引擎改成MyISAM

MySQL [wang]> alter table test engine=MyISAM;

35.收回wang用户的select权限

MySQL [wang]> revoke select on wang.* from wang@localhost;

36.删除wang用户

MySQL [wang]> drop user wang@localhost;

37.删除wang数据库

MySQL [wang]> drop database wang;

38.使用root关闭数据库

# mysqladmin -uroot -predhat shutdown

39.MySQL密码丢了,请找回?

#mysqld_safe --skip-grant-tables 
#mysql -uroot -p -e "use mysql;update user set passowrd = PASSWORD('newpassword') where user = 'root';flush privileges;"

40:MySQL主从复制原理及配置主从步骤

原理如下:

主库开启binlog功能并授权从库连接主库,从库通过change master得到主库的相关同步信息,然后连接主库进行验证,主库IO线程根据从库slave线程的请求,从master.info开始记录的位置点向下开始取信息,同时把取到的位置点和最新的位置与binlog信息一同发给从库IO线程,从库将相关的sql语句存放在relay-log里面,最终从库的sql线程将relay-log里的sql语句应用到从库上,至此整个同步过程完成,之后将是无限重复上述过程

步骤如下:

1、主库开启binlog功能,并进行全备,将全备文件推送到从库服务器上
2、show master status\G 记录下当前的位置信息及二进制文件名
3、登陆从库恢复全备文件
4、执行change master to 语句
5、执行start slave and show slave status\G
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章