MySQL基础操作命令

1、 查看MySQL进程

ps -ef|grep mysql |grep -v grep

2、 查看MySQL端口

ss -lnt | grep 3306

3、 MySQL的启动

mysql -uroot -p

/etc/init.d/mysql

初始化时MySQL的启动方法

mysqld_safe -user=mysql &

4、 关闭数据库

1)平滑关闭数据库

mysqladmin -uroot -pcentos shutdown

/etc/init.d/mysqld stop

kill -USR2 cat path/pid

2)强制关闭数据库

killall mysqld

pkill mysqld

killall -9 mysqld

注意:尽量不要野蛮的杀死数据库,生产高并发环境可能会引起数据丢失。

5、 多实例启动与关闭

多实例的启动就是我们写脚本,启动时用mysqld_safe指定配置文件启动,关闭时用mysqadmin

(1)/data/3306/mysql start

(2)/data/3307/mysql stop

6、 登陆mysql方法

(1)单实例登陆

mysq                        #数据库没有配置秘密的登陆方式

mysql -uroot                #数据库没有配置秘密的登陆方式

mysql -uroot -p             #标准的dba命令登陆命令

mysql -uroot -pcentos       #非脚本一般不这样用,密码明文会泄露密码,可以掩饰history功能解决

强制linux不记录敏感历史命令

      #HISTCONTROL=ignorespace

2)多实例登陆

mysql -uroot -p -S /data/3306/mysql.sock

多实例通过mysql -S命令制定不同的sock文件登陆不同的服务中

3)远程连接无需制定sock路径

mysql -uroot -p 127.0.0.1 -P3307

7、 更改MySQL数据库登陆提示符

1)命令行修改登陆提示符,临时生效(进入数据库中)

mysql> prompt \u@solindb \r:\m:\s->

(2)配置文件修改登陆提示符

在my.cnf配置文件中[mysql]模板下添加如下内容

[mysql]

prompt=\\u@solindb \\r:\\m:\\s->

8、 MySQL的帮助命令help

MySQL中的help和linux的man相似

mysql> help history

mysql> help grant

mysql> help show grants

9、 为管理员root用户设置密码方法

mysqladmin -u root password ‘centos123’ #没有密码的用户设置密码

mysqladmin -u root -p ‘centos123’ password ‘centos456’ -S /data/3306/mysql.sock #适合多实例方式

注:以上为linux命令行

10、修改管理员root密码

    方式一:命令行修改

      mysqladmin -u root -p ‘centos123’ password ‘centos456’

mysqladmin -u root -p ‘centos123’ password ‘centos456’ -S /data/3306/mysql.sock

方式二:SQL语句修改

mysq>UPDATE mysql.user SET password=PASSWORD(“centos123”) WHERE user=’root’;

mysql>flush privileges;

方式三:root密码为空,修改root口令

mysql> set passwprd=passwpef(‘centos123’);

mysql> flush privileges;

注:此法不适合--skip--grant--tables方式修改密码

10、找回丢失的mysql用户密码

(1)   首先停止mysql

/etc/init.d/mysqld stop

(2)   使用 --skip-grant-tables  启动mysql,忽略授权登陆

mysqld_safe --skip-grant-tables --user=mysql &

mysql –uroot –p或mysql #登陆时空密码

注:在启动时加--user=mysql参数,表示忽略授权验证

(3)   修改root密码为新密码

mysql> update mysql.user set password=PASSWORD(“cebtos123”) where user=”root” and host=”locahost”;

mysql> flush privileges;

(4)   重启服务再登陆

mysqladmin -uroot -pcentoos123 shtudown

/tec/init.d/mysqld start

mysql -uroot -p”centos123”

11、多实例MySQL启动修改丢失root密码

    (1)关闭mysql

          killall mysqld

(2)启动时加--skip-grant-table参数

      mysqld_safe --defaults-file=/data/3306/my.cof --skip-grant-table &

      mysql -u root -p -S /data/3306/mysql.sock #登陆时空密码

(3)修改密码的方法

      mysql> UPDATE msql.user SET password=PASSWORD(“centos123”) WHERE user=’root’;

      FLUSH PRIVILEGES;

 

 

12、SQL结构化查询语言

SQL结构化查询语言包括6个部分

(1)数据查询语言(DQL)

DQL全称Data Query Language,其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出,保留字SELECT是DQL用得最多的动词,其他DQL常用的保留字有WHERE,ORDAER BY,GROUP BY 和 HAVING

mysql> select user,host from mysql.user order by user asc; #查询mysql.user的user,host,并升序排列

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

| root | 127.0.0.1 |

| root | ::1       |

+------+-----------+

3 rows in set (0.00 sec)

 

mysql> select user,host from mysql.user order by user desc; #查询mysql.user的user,host,并倒序排列

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

| root | 127.0.0.1 |

| root | ::1       |

+------+-----------+

3 rows in set (0.00 sec)

(2)数据操作语言(DML)

DML全称Data Manipulation Language,其语句包括INSERT,UPDATE和DELETE。他们分别用于添加,修改和删除表中的行(数据)也称作动作查询语句

mysql> select user,host from mysql.user order by user desc;

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

| root | 127.0.0.1 |

| root | ::1       |

+------+-----------+

3 rows in set (0.00 sec)

 

mysql> delete from mysql.user where host='::1';   #删除表中host=;;1的(行)数据

Query OK, 1 row affected (0.00 sec)

 

mysql> select user,host from mysql.user order by user desc;

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

| root | 127.0.0.1 |

+------+-----------+

2 rows in set (0.00 sec)

(3)事物处理语言(TPL)

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN

TRANSACTION,COMMIT和ROLLBACK

(4)数据控制语言(DCL)

DCL全称(Date Control Language),它的语句通过GRANT或REVOKE获得许可,确定单用户和用户组多数据对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

(5)数据定义语言(DDL)

    DDL全称(Date Definition Language),其语句包括动词CREATE和DROP,在数据库中创建新表或删除表(CREAT TABLE或DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得有关的保留字。字也是动作查询的一部分

(6)指针控制语言(CCL)

全称CURSOR Control Language ,它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作

小结:常见的SQL语句最常见的分类一般就是3类

DDL--数据定义语言(CREATE,ALTER,DROP)

DML--数据操作语言(SELECT,INSERT,DELETE,UPDATE)

DCL--数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)