MySQL的基础命令<一>

MySQL经常使用基础操做命令(5.5)

1、MySQL的启动与关闭

一、MySQL的启动与中止的实质

  启动的实质:mysqld_salf --default-file=/data/3306/my.cnfmysql

  中止的实质:mysqladmin uroot -p"密码" -s /date/3306/mysql.sock shutdown
linux

2、MySQL的密码有关问题sql

一、单实例MySQL的启动 数据库

[root@feitian mysql-5.1.72]# cp support-files/mysql.server /etc/init.d/mysqld
[root@feitian mysql-5.1.72]# chmod 700 /etc/init.d/mysqld
[root@feitian mysql-5.1.72]# /etc/init.d/mysqld restart

二、多实例MySQL的启动bash

   默认sock文件在编译过程当中能够指定路径,若是多实例安装的MySQL启动时要指定sock文件,由于他不知道你初始化数据库时,你的sock文件路径。app

   通常启动:
tcp

[root@loveyu ~]# /data/3306/mysql start   
#mysql的登陆使用的是一个脚本,在文章的上传附件中。               
Starting MySQL...
[root@loveyu ~]# netstat -lnt |grep 3306
tcp     0    0 0.0.0.0:3306      .0.0.0:*       LISTEN

三、为MySQL增长登陆密码
ide

   单实例和可能是例增长密码的方式同样,只是多实例修改和登陆要指定MySQL的sock文件路径ui

  3.1 多实例MySQL增长密码
加密

[root@loveyu bin]# mysqladmin -uroot -S /data/3306/mysql.sock password 'fenghui' 
[root@loveyu bin]# mysql -S /data/3306/mysql.sock  
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#这时你不能不使用密码登陆,使用下面的登陆,可是不建议使用此种方式,由于会暴露密码
#mysql -S /data/3306/mysql.sock -uroot -p回车,而后输入密码
[root@loveyu bin]# mysql -S /data/3306/mysql.sock -uroot -p'fenghui'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.5.32-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 四、为MySQL用户修改密码

 4.1 用SQL语句修改MySQL的密码

mysql> show databases;
+--------------------+
| Database     |
+--------------------+
| information_schema|
| mysql       |
| performance_schema|
| test       |
+--------------------+
4 rows in set (0.05 sec)

mysql> use mysql
Database changed
mysql> select * from mysql.user\G;
#这里的列表太长,这里就不列出了。
#修改本地root的登陆密码。
mysql> update mysql.user set password=password(12345) where user='root' and  host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
#这里注意在SQL语句中修改完密码,要重启MySQL服务

 4.2 在Linux系统中使用mysqladmin修改密码

[root@loveyu ~]# mysqladmin  -uroot -pfenghui password '1234' -S /data/3306/mysql.sock
#这里不须要重启MySQL服务

  注意:这是多实例的修改方法,若是是单实例只须要去掉-S /data/3306/mysql.sock 

五、找回MySQL的登陆密码

5.1 单实例找回密码

[root@loveyu ~]# /data/3306/mysql stop
Stoping MySQL...
#中止完成以后须要指定--skip-grant-tables 参数启动,他是忽略受权表登陆
[root@loveyu ~]# /application/mysql/bin/mysqld_safe  --skip-grant-tables --user=mysql &
[root@loveyu ~]# mysql -uroot -p   #回车,他会提示你输入密码,你只须要回车就会进入数据库
#登陆mysql使用前面的update更改root本地登陆的密码,重启mysql服务就完成了。

mariadb 数据库使用 mysql_safe --skip-grant-tables & 启动数据库,也是使用updata修改密码。

5.2 多实例找回密码

    只有启动时和单实例MySQL不同,其余都同样,多实例MySQL的启动:

[root@loveyu ~]# /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --skip-grant-tables &
[1] 7787
[root@loveyu ~]# 170808 13:34:40 mysqld_safe Logging to '/data/3307/mysql_oldboy3307.err'.
170808 13:34:40 mysqld_safe Starting mysqld daemon with databases from /data/3307/data
[root@loveyu ~]# mysql -uroot -p -S /data/3307/mysql.sock 
#登陆以后,用updata修改本地root的登陆密码,从新启动。

3、SQL语句的定义和分类

一、什么是SQL?

    SQL英文全称Structured Query Language,中文意思结构化查询语言,他是一中对关系型数据库的数据进行定义和操做的语言方法。SQL是一种数据库查询和程序设计语言。

二、SQL的分类

DQC(Date Query Language) 数据查询语言 数据检索语句,关键字常见的有 SELECT

DML(Data Manipulation 

Language)

数据操纵语言 关键字,INSERT、UPDATA、DELETE等
TPL (不经常使用) 事物处理语言 他的语句确保DML语句影响的表能及时更新
DCL(Data Control Language) 数据控制语言 关键字GRANT、REVOKE

DDL (Data definition

Language) 

数据定义语言 关键字CREATE、DROP
CCL(Cursor Control Language) 指针控制语言 UPDATA WHERE CURRENT 用于一个或多个表

  咱们经常使用的SQL分类

SQL分类: 
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

4、MySQL数据库常见的管理和应用

一、数据库的建立查看删除和链接   

1.1建立命令语法   

  CREATE database <名称>;  

mysql> CREATE DATABASE feitian;
Query OK, 1 row affected (0.03 sec)
mysql> SHOW DATABASES ;                  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| feitian            |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

1.2 建立一个GBK字符集的数据库     

mysql> CREATE DATABASE GBK DEFAULT CHARACTER  SET GBK COLLATE gbk_chinese_ci;
Query OK, 1 row affected (0.00 sec)

1.3 建立一个utf-8字符集的数据库   

mysql> CREATE DATABASE UTF DEFAULT CHARACTER  SET utf8  COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
#数据库的名字叫UTF

1.4 显示数据库

mysql> CREATE DATABASE UTF DEFAULT CHARACTER  SET utf8  COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| feitian            |
| gbk                |
| mysql              |
| performance_schema |
| test               |
| utf                |
+--------------------+
7 rows in set (0.00 sec)
mysql> USE gbk;
Database changed
#查看当前所在的表,至关于linux中的pwd.
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| gbk        |
+------------+
1 row in set (0.00 sec)
#查看当前登陆的用户
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
#查看当前时间
mysql> select now();
+---------------------+
| now()       |
+---------------------+
|2017-08-08 14:21:10 |
+---------------------+
1 row in set (0.00 sec)
#查看数据库名称中含有e的。
mysql> SHOW DATABASES LIKE '%e%';
+--------------------+
| Database (%e%)  |
+--------------------+
| information_schema|
| feitian      |
| performance_schema|
| test       |
+--------------------+
4 rows in set (0.00 sec)

1.5删除数据库 

mysql> DROP DATABASE GBK;
Query OK, 0 rows affected (0.06 sec)
#删除名字为GBK的数据库

1.6链接数据库

mysql> use mysql;
Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

二、数据库中用户的建立和删除和受权

2.1 删除用户

mysql> select user,host from mysql.user; 
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | loveyu    |
| root | loveyu    |
+------+-----------+
6 rows in set (0.00 sec)
mysql> drop  user 'root'@'loveyu';
Query OK, 0 rows affected (0.00 sec)

注意:若是含有大写字母的名称用drop删除不了可使用下面的命令

delet from mysql.user where user='LALA' and hoset='localhost'

2.2 建立用户和对用户受权和查看用户的权限

2.2.1 建立用户和受权一步完成

mysql> GRANT ALL ON mysql.* TO 'feitian'@localhost IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
#建立一个用户feitian只能在本地登陆,密码是1234,对mysql库中的表有全部权利

2.2.2 先建立用户在受权

mysql> CREATE USER 'lala'@'172.25.254.231'  IDENTIFIED  BY '1234';
Query OK, 0 rows affected (0.00 sec)
#建立用用户,只能在172.25.254.231这台主机登陆,密码是1234.
mysql> GRANT ALL ON *.*  TO 'lala'@'172.25.254.231';
Query OK, 0 rows affected (0.00 sec)
给lala这个用户全部权限操做整个数据库。

2.3查看用户的受权

mysql> show grants for 'lala'@'172.25.254.231';
+---------------------------------------------------------------------------------------------------------------------------+
| Grants for lala@172.25.254.231                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'lala'@'172.25.254.231' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' |
+---------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

用户可受权的全部权限:

mysql> REVOKE DELETE ON *.* from 'lala'@'172.25.254.231';
Query OK, 0 rows affected (0.00 sec)
#收回一个删除的权利,在次查看改用户的权利,就获得全部权利
mysql> show grants for 'lala'@'172.25.254.231'\G;
*************************** 1. row ***************************
Grants for lala@172.25.254.231: GRANT SELECT, INSERT, UPDATE, CREATE, DROP, RELOAD, 
SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
 LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE,
 ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'lala'@'172.25.254.231' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
1 row in set (0.00 sec)
相关文章
相关标签/搜索