首先,我是在Windows 7 环境下,安装的版本是 5.7.13MySQL Community Server。
MySQL 一些基础操作
打开关闭mysql服务
打开net start mysql
, 关闭net stop mysql
。
查询MySQL版本
切换到mysql的安装文件,bin
目录下。1
2
3cd D:\mysql-5.7.13\bin
>mysqladmin --version
>mysqladmin Ver 8.42 Distrib 5.7.13, for Win64 on x86_64
修改root密码
方法一:
Mysql安装成功后,默认root用户密码为空,我们先执行mysql.exe
进入数据库。
将root用户的密码改为123456. 退出,重新登入时,则需要输入密码。1
2
3
4
5
6
7
8
9
10
11
12mysql> set password for root@localhost=password('123456');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> exit;
C:\Users\User>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
如果出现
1 | mysql> set password for root@localhost=password('123456'); |
是因为之前设置了启动MySQL服务的时候跳过权限表认证mysqld --skip-grant-tables
,这种情况可以适用于忘记root密码的情况,需要刷新权限之后再进行上述改密码操作。
1 | mysql> flush privileges; |
方法二:
MySQL5.7中mysql库中的user表中取消了password字段,而是将密码进行加密后,放进authentication_string 字段中。
1 | mysql> select User, Password from mysql.user; |
因此,我们还可以通过update来更改root密码。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15mysql> use mysql 切换到mysql表
Database changed
mysql> update user set authentication_string=password("123") where User="root";
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges; 刷新权限
Query OK, 0 rows affected (0.01 sec)
mysql> quit; 退出
Bye
C:\Users\User>mysql -uroot -p 重新登陆,更改成功
Enter password: ***
其中,flush privileges; 权限刷新操作很重要,是因为权限信息是在mysqld服务启动时就加载到内存中的,因此任何在原权限表中的修改都不会直接生效。而flush privileges 操作就是把表中的操作更新到内存中。
MySQL 查询
MySQL的关键词不区分大小写。
例一:1
2
3
4
5
6
7mysql> SeLeCt vErSiOn(), current_DATE;
+-----------+--------------+
| vErSiOn() | current_DATE |
+-----------+--------------+
| 5.7.13 | 2017-06-23 |
+-----------+--------------+
1 row in set (0.00 sec)
MySQL可以作为简单的计算器。
例二:1
2
3
4
5
6
7mysql> Select sin(PI()/4),(2-3)*5;
+--------------------+---------+
| sin(PI()/4) | (2-3)*5 |
+--------------------+---------+
| 0.7071067811865476 | -5 |
+--------------------+---------+
1 row in set (0.03 sec)
MySQL可以在一行处理多个表达式,用分号隔开。
例三:1
2
3
4
5
6
7
8
9
10
11
12
13
14mysql> Select version();select now();
+-----------+
| version() |
+-----------+
| 5.7.13 |
+-----------+
1 row in set (0.00 sec)
+---------------------+
| now() |
+---------------------+
| 2017-06-23 16:34:47 |
+---------------------+
1 row in set (0.00 sec)
同样,若是某一个查询语句过于冗长,我们也可以分成几行来执行。MySQL接受自由格式的输入,收集分号前的语句,然后执行。
例四:1
2
3
4
5
6
7
8
9
10
11mysql> select
-> user()
-> ,
-> current_date
-> ;
+----------------+--------------+
| user() | current_date |
+----------------+--------------+
| root@localhost | 2017-06-23 |
+----------------+--------------+
1 row in set (0.00 sec)
若在输入的中间放弃查询,可以按CTRL+C 退出。1
2
3mysql> select
-> user
-> ^C
[1]. 参考: https://dev.mysql.com/doc/refman/5.7/en/entering-queries.html