码迷,mamicode.com
首页 > 数据库 > 详细

mysql基本语句

时间:2018-08-22 19:36:52      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:发送   grant   insecure   upd   lis   切换   hang   etc   func   

设置更改root密码

安装mysql后默认是没有密码的(mysql5.7以后会随机产生一个root密码),需要手动去为mysql的root管理员创建密码
初次使用mysql时,是没有mysql命令的,这是因为PATH路径中没有添加mysql的bash路径,需要我们使用export PATH添加一下即可,这里我写入到了/etc/profile文件当中,这样每次开机启动时都会自动加载这个路径,生效这个路径下的命令
这里把所有的路径指定了一下,其中包含重复的,不过这样不会影响到系统正常使用的

[root@aaa ~]# vim /etc/profile

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3/bin:/root/bin:/usr/local/mysql/bin/

修改默认没有密码的mysql,默认没有密码的mysql;不需要密码就能够登入其sql命令行中,可以在命令行中指定用户身份更新密码,也可以使用mysqladmin来更新密码,这种方式比较简单
在命令行中直接写入密码来登入mysql,会有警告提示,警告用户尽量不要使用命令行输入密码的方式登录,因为其密码是明文显示的

[root@aaa ~]# mysqladmin -uroot -password ‘pwd@123‘
[root@aaa ~]# mysql -uroot -ppwd@123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.12 Source distribution

Copyright (c) 2000, 2017, 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>

修改my.cnf来更改mysql的密码,在my.cnf配置文件中添加skip-grand这项配置,然后重启mysql服务,在mysql5.7中,添加skip-grant则会导致mysql无法启动了,mysql5.7在初始化时会输出一个初始值的密码,需要在安装时留意这个密码,或者在root目录下找到.mysql_secret这个隐藏文件,其第二行就是默认密码,如果批量部署时可以使用特殊权限应用脚本来修改mysql的默认密码。

[root@aaa ~]# vim /etc/my.cnf

[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
port = 3306
character-set-server = utf8
explicit_defaults_for_timestamp = true
#skip-grant
[root@aaa ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!

mysql5.7查看默认初始化的密码

[root@aaa ~]# cat .mysql_secret 
#Password set for user ‘root@localhost‘ at 2018-08-10 18:01:37 
aiivsz&#du_.

mysql5.7中修改密码
使用默认密码后无密码认证登入mysql,修改mysql表内容来修改root管理员密码

[root@aaa ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, 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> SET PASSWORD FOR ‘root‘@localhost = PASSWORD(‘pwd@123‘);
Query OK, 0 rows affected, 1 warning (0.00 sec)

链接mysql
mysql密码创建好能正常使用后,我们会在一些远程工具或本地的某些环境中对mysql执行操作(如shell里),针对这些我们直接使用mysql命令来远程登录到这个数据库再执行操作
mysql指定IP地址进行链接,登录时可以不指定密码,如果是在脚本这样的程序中操作,则需要-p密码 ?这样来直接登录到mysql中,-P 是指定端口号

[root@aaa ~]# mysql -uroot -p -h127.0.0.1 -P 3306
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, 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> 

使用sock文件的通信方式来登录mysql,这种和ip区别在于读取数据时不通过tcp/ip协议,也就是不会把数据发送到网卡然后去读取,可以为数据查询提高点读取速度,-S后指定sock文件所在目录,-S和路径后没有空格

[root@aaa ~]# mysql -uroot -p -S/usr/local/mysql/mysql.sock
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22 Source distribution
Copyright (c) 2000, 2018, 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> 

命令行中查询mysql中的数据,一般使用在脚本当中,mysql在登入后,执行语句会有回车的交互动作,依靠脚本语言实现起来比较麻烦,这里就使用了mysql ?-e 来直接输出sql查询的结果,-e 后面的sql语句需要使用单引号引用起来

[root@aaa ~]# mysql -uroot -ppwd@123 -e ‘show databases‘
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ?  |
| performance_schema |
| sys ? ? ? ? ? ? ?  |
+--------------------+

mysql常用语句

查询mysql的所有库 ? ? show databases;

mysql> show databases;
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ?  |
| performance_schema |
| sys ? ? ? ? ? ? ?  |
+--------------------+
4 rows in set (0.00 sec)

进入或切换一个库,这里进入名为mysql的库 ? ??use mysql;
并查询库里有哪些表 ? ? show tables;

mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db ? ? ? ? ? |
| engine_cost  |
| event ? ? ?  |
| func ? ? ? ? |
| general_log  |
-----------------省略部分

查看表里的字段 ? desc ?tb_name(表名);

mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host ? ? ? ? ? ? ? ? | char(60) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ?  | ? ? ? ? ? ? ? ? ?  |
| User ? ? ? ? ? ? ? ? | char(32) ? ? ? ? ? ? ? ? | NO | ? ? PRI| ? ? ?  | ? ? ? ? ? ? ? ? ?  |
| Select_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  |
| Insert_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  |
| Update_priv ? ? ? ?  | enum(‘N‘,‘Y‘) ? ? ? ? ?  | NO | ? ? ?  | ? ?  N | ? ? ? ? ? ? ? ? ?  |
 ------------------省略部分字段

查看建表的语句 show create table tb_name\G;?
可以通过show create table 来查看创建表时使用的语句规则,加上\G使输出更加可视化,不然则是输出较多的符号,不易理解

mysql> show create table user\G;
*************************** 1. row ***************************
 ? ? ? Table: user
Create Table: CREATE TABLE `user` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,
-------省略部分-----------------------------------

查看当前登录到mysql的用户? select ?user();
查看登录到mysql的有哪些,且是用什么方式登录的(本地或IP登录) ,这里是在本地登录mysql,远程登录mysql会显示出登录的ip或者解析的主机名,若不想让mysql解析远程ip,则需要在my.cnf中禁止解析ip的操作

mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

查看当前使用的数据库??select database();
查看登入数据库执行某些进入库的操作后,查看自己现在操作处于哪个库下

mysql> select database();
+------------+
| database() |
+------------+
| mysql ? ?  |
+------------+
1 row in set (0.00 sec)

创建一个库 create database holle;
创建库(database)指定创建的库所用的名称

mysql> create database holle;
Query OK, 1 row affected (0.00 sec)

创建表?create table tb1(id int(4),namechar (40))ENGINE=innodb DEFAULT CHARSET=utf8;
这里创建数据表的内容是;创建一张id长度是4的、字符长度40的表,其指定了数据表使用的查询引擎和字符集(ENGINE和DEFAULT CHARSET)

mysql> create table tb1(`id` int(4),`name`char (40))ENGINE=innodb DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> show create table tb1\G;
*************************** 1. row ***************************
 ? ? ? Table: tb1
Create Table: CREATE TABLE `tb1` (
 ?`id` int(4) DEFAULT NULL,
 ?`name` char(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

查看数据库版本 ?mysql> select version();

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.22 ?  |
+-----------+
1 row in set (0.00 sec)

查看数据库状态 ? show status;
查看常用的数据状态

mysql> show status;
+-----------------------------------------------+--------------------------------------------------+
| Variable_name ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  |
+-----------------------------------------------+--------------------------------------------------+
| Aborted_clients ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  |
| Aborted_connects ? ? ? ? ? ? ? ? ? ? ? ? ? ?  | 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  |
----------------------------省略部分

查看mysql的设置参数 ?show variables\G; ? ??

mysql> show variables\G;
*************************** 462. row ***************************
Variable_name: sql_log_off
 ? ? ?  Value: OFF
*************************** 463. row ***************************
Variable_name: sql_mode
 ? ? ?  Value: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
*************************** 464. row ***************************
Variable_name: sql_notes
 ? ? ?  Value: ON

查看某个参数的统配 ??show variables like ‘max_connect%‘;
?用于查找对应的配置参数,可以查找不太确认的配置参数名称,如所示:

mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name | Value ? ?  |
+--------------------+-------+
| max_connect_errors ? | 100 |
| max_connections ? ?  | 151 |
+--------------------+-------+
2 rows in set (0.00 sec)
mysql> show variables like ‘slave_parallel%‘;
+------------------------+----------+
| Variable_name ? ? ? ?  | Value ?  |
+------------------------+----------+
| slave_parallel_type ?  | DATABASE |
| slave_parallel_workers | 0 ? ? ?  |
+------------------------+----------+
2 rows in set (0.00 sec)

修改mysql配置的参数 ??set global max_connect_errors=1000;
将max_connect_errors的数值从100修改到1000,不过这个修改只是在内存当中生效,意味着如果发生关机开机重启的操作时,这些参数会变回配置文件中的默认配置,要想永久生效应对my.cnf的内容进行配置

mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name | Value ? ?  |
+--------------------+-------+
| max_connect_errors ? | 100 |
| max_connections ? ?  | 151 |
+--------------------+-------+
2 rows in set (0.00 sec)

mysql> set global max_connect_errors=1000;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘max_connect%‘;
+--------------------+-------+
| Variable_name ? ?  | Value |
+--------------------+-------+
| max_connect_errors | ?1000 |
| max_connections ?  | ? 151 |
+--------------------+-------+
2 rows in set (0.00 sec)

查看mysql处理列队 ?show processlist;
查看mysql处理列队的全部信息 show full processlist;
这两条语句主要查看mysql执行语句的处理情况,判断mysql的工作状态

mysql> show processlist;
+----+------+-----------+---------+---------+-------+----------+------------------+
| Id | User | Host | db | Command | Time ?  | State | Info ? ? | ? ? ? ? ? ? ? ?  |
+----+------+-----------+---------+---------+-------+----------+------------------+
| 9  | root | localhost | holle ? | Query ? | 0 ? ? | starting | show processlist |
+----+------+-----------+---------+---------+-------+----------+------------------+
1 row in set (0.00 sec)

mysql> show full processlist;
+----+------+-----------+-------+---------+------+----------+-----------------------+
| Id | User | Host ? ?  | db ?  | Command | Time | State ?  | Info ? ? ? ? ? ? ? ?  |
+----+------+-----------+-------+---------+------+----------+-----------------------+
| 9  | root | localhost | holle | Query ? | 0 ?  | starting | show full processlist |
+----+------+-----------+-------+---------+------+----------+-----------------------+
1 row in set (0.00 sec)

mysql基本语句

标签:发送   grant   insecure   upd   lis   切换   hang   etc   func   

原文地址:http://blog.51cto.com/8844414/2163019

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!