第一部分 非数据操作常用命令(安装、密码、登录、授权、导入导出、查看)
1、安装Mysql
1.1 下载
官方下载:mysql-5.7.16-winx64
个人分享:mysql-5.7.16-winx64 【提取码:0001】
· 点击此处 → 选择其他mysql版本
1.2 解压并设置my.ini文件
| · 在解压所在的文件夹下创建my.ini文件,并输入以下内容 |
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置端口
port = 3306
# 设置mysql的安装目录
basedir=D:Program Filesmysql-5.7.16-winx64
# 设置数据的存放目录,也就是以后数据库、数据库表所在的位置
datadir=D:Javadata
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
1.3 安装mysql
| · 将下载的文件解压,然后在管理员权限下打开cmd,键入以下命令 |
D:Program Filesmysql-5.7.16-winx64bin>mysqld --install
Service successfully installed.
D:Program Filesmysql-5.7.16-winx64bin>mysqld --initialize-insecure
D:Program Filesmysql-5.7.16-winx64bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
| · 打开资源管理器 -> 服务 -> Mysql,意味着mysql服务已经开启 |
2、修改密码
| · 键入以下命令,root为默认用户名,初始无密码直接回车,接下来就可以使用密码登录了,以后依旧可以使用以下命令来更改密码 |
C:Usershct>mysqladmin -uroot -p password
Enter password:
New password: ******
Confirm new password: ******
3、连接Mysql
3.1 本地连接
| · 这里的root是我本地数据库的登录名,按下回车后提示输入密码,若在-p后直接输入密码也可以在直接进入mysql命令行, |
C:Usershct>mysql -u root -p
Enter password:
如下,会有一个Warning的警告
| Tip:在使用数据库5.5及之前版本不会有该警告,之后版本 Mysql官方 考虑安全问题避免显示输入密码 |
C:Usershct>mysql -u root -p123456
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 40633
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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>
3.2 远程连接
· 相比于本地连接,多增加一个-h参数,后面紧跟连接的主机地址 连接的前提是:目标主机地址已经安装的mysql并且设置了远程连接授权 |
C:Usershct>mysql -h192.168.1.90 -u root -p
Enter password: ******
4、用户权限
4.1 远程授权
//1、赋予任何主机以root用户无密码访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
//2、root使用123456从任何主机连接到mysql服务器
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
//3、只允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3'IDENTIFIED BY '123456' WITH GRANT OPTION;
//4、更新版本的mysql授权
mysql>alter user 'root'@'localhost' identified by '123456';(by 接着的是密码)
//5、只授权部分权限:
mysql> grant select,insert,update,delete,create,drop on mysql.* to 'root'@'192.168.1.90' identified by '123456';
//刷新生效
mysql>FLUSH PRIVILEGES
//常用方法
grant all on *.* to root@'%' identified by '123456';
flush privileges;
sudo service mysql restart
| · mysql创建用户并授权格式:grant 权限 on 数据库名.表名 to 用户@登录主机ip identified by "用户密码"; 具体应用如下 |
mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.32 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.18 sec)
#重启mysql服务
mysql> sudo service mysql restart;
4.2 收回权限
· 收回select、insert、update、delete部分或全部权限,也可指定 格式: revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; |
mysql> revoke select on * . * from root;
Query OK, 0 rows affected (0.20 sec)
mysql> revoke select on loo.user from 'root'@'localhost';
5、导入导出sql文件
5.1 导入sql文件
| · 登录mysql数据库后执行source 所在位置+文件名.sql 即可运行sql文件执行里面的建库、建表、插入数据等操作 |
mysql> source C:UsershctDesktopuser.sql
Query OK, 0 rows affected (0.03 sec)
Database changed
mysql>
| · 不进入mysql执行mysql -u root -p < 需要执行的SQL文件名.sql |
C:UsershctDesktop>mysql -u root -p loo < C:UsershctDesktopuser.sql
Enter password: ******
C:UsershctDesktop>
5.2 导出sql文件
· 执行 mysqldump -uroot -p 数据库名 > 自定义文件名.sql 即可导出指定数据库的sql 可选项: --no-data 仅备份数据库结构 --no-create-info 仅备份数据库数据 --all-database 备份所有数据库 |
C:UsershctDesktop>mysqldump -u root -p loo > loo1.sql
Enter password: ******
C:UsershctDesktop>mysqldump -u root -p --no-data loo > loo2.sql
Enter password: ******
C:UsershctDesktop>mysqldump -u root -p --no-create-info loo > loo3.sql
Enter password: ******
C:UsershctDesktop>mysqldump -u root -p --all-databases > all.sql
Enter password: ******
| · 即可看到桌面生成了loo1.sql、loo2.sql、loo3.sql、all.sql |
6、查看命令
6.1 查看mysql版本
C:Usershct>mysql -V
mysql Ver 14.14 Distrib 5.7.16, for Win64 (x86_64)
Tip:在mysql中输入命令必须以 ; (即分号)作为结尾来结束命令的输入,回车才会执行该命令 除了loo数据库其他均为mysql系统自带的数据库,不建议去修改,更不要删除 |
# 方式一
mysql> select version() from dual;
+-----------+
| version() |
+-----------+
| 5.7.16 |
+-----------+
1 row in set (0.05 sec)
# 方式二
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.16 |
+-----------+
1 row in set (0.00 sec)
6.2 查看mysql中的数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| loo |
| mysql |
| performance_schema |
| rayview |
| sys |
| test |
+--------------------+
9 rows in set (0.24 sec)
6.3 查看数据库中的表
mysql> use loo;
Database changed
mysql> show tables;
+---------------+
| Tables_in_loo |
+---------------+
| user |
+---------------+
1 row in set (0.01 sec)
6.4 查看用户权限
| · show grants for 用户名@ip,之前赋值所有ip都可,可不选择ip查看 |
mysql> show grants for root;
+-------------------------------------------+
| Grants for root@% |
+-------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' |
+-------------------------------------------+
1 row in set (0.00 sec)
6.5 查看mysql数据库的引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
mysql> show engines G
....
#不再显示输出内容
6.6 查看建表语句
mysql> show create table user;
+-------+-----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------+
| user| CREATE TABLE `user` (
`id` int(255) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------+
1 row in set (0.14 sec)
6.7 查看表详细描述
mysql> describe user;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(255) | NO | PRI | NULL | |
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.30 sec)