mysql使用笔记(命令行 )

必须用管理员权限打开cmd

查看当前使用的mysql版本

ysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.23    |
+-----------+
1 row in set (0.04 sec)

登录mysql

mysql -h (host 服务器主机名 本机:localhost)
- P(大写P 表示Port 端口号)
- u( 用户 root)
- p(小写p 表示密码)
完整输入:

C:\Windows\system32>mysql -h localhost -P 3306 -u root -p123456
#-p后直接回车可以输入密码,此时不被显示
#若无回车,直接输入密码,且密码前不能有空格

mysql 【-h localhost -P 3306】 -u root -p123456
若为本机,括号内可省略,远程则不可省略

C:\Windows\system32>mysql -u root -p
Enter password: ******
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

可使用非root用户在此界面登入

C:\Windows\system32>mysql -u name -pmima

语法规范

  1. 不区分大小写,但建议关键字大写,表名、列名小写
  2. 每条命令最好用分号结尾,用\g结尾也可以,使用图形化界面,最好用分号结
  3. 每条命令根据需要,可以进行缩进或换行(最好是关键字单独占一行)
  4. 单行注释:#注释内容
    单行注释:-- 注释内容 --和注释内容之间有一个空格,不格的话,mysql就会认为这不是注释
    多行注释:/* 注释内容 */

开启服务代码: net start mysql8

(我安装的版本为 mysql8.0 )
停止代码: net stop mysql8

C:\Windows\system32>net start mysql8
mysql8 服务正在启动 .
mysql8 服务已经启动成功。

使用 show databases 查看数据库

mysql> show databases
    -> ;
+--------------------+
| Database           |    #这四个数据库是自带的
+--------------------+
| information_schema |    #保存原数据信息
| mysql              |    #保存用户信息
| performance_schema |    #收集性能信息
| sys                |    #MySQL 8.0的发展越来越趋同与Oracle,为了更好的监控MySQL的一些相关指标,出现了SYS视图,用于监控
                          #在mysql5.0中为test模块,用来测试,初始状态为空
+--------------------+
4 rows in set (0.04 sec)

使用 show global variables like ‘port’; 查看端口

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set, 1 warning (0.04 sec)

原设置文件 my.ini

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# 设置3309端口
port=3309   #根据自己的需要修改端口
# 设置mysql的安装目录
basedir=L:\1_mysql\mysql-8.0.19-winx64 #根据自己的文件位置修改
# 设置mysql数据库的数据的存放目录
datadir=L:\1_mysql\mysql-8.0.19-winx64\Data #根据自己的文件位置修改
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3309   #根据自己的需要修改端口
default-character-set=utf8

安装时并未执行此配置文件,随后使用端口,地址,用户名等等时需要逐个查看,随后重新配置此文件,出现问题

C:\Windows\system32>net start mysql8
mysql8 服务正在启动 .
mysql8 服务无法启动。

服务没有报告任何错误。

请键入 NET HELPMSG 3534 以获得更多的帮助。

通过排查,安装目录格式中反斜杠消失,于是修改:

# 设置mysql的安装目录
basedir=D:\\study\\mysql-8.0\\mysql-8.0.23-winx64#根据自己的文件位置修改
# 设置mysql数据库的数据的存放目录
datadir=D:\\study\\mysql-8.0\\mysql-8.0.23-winx64\\Data #根据自己的文件位置修改

可成功导入此文件,且配置成功

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3309  |
+---------------+-------+
1 row in set, 1 warning (0.01 sec)

今后此类配置若需改变可在 my.ini 文件中修改查找,需重启服务便可运行

打开库

use (指定库名)

mysql> use sys;
Database changed

show tables 打开表格

mysql> show tables
    -> ;
+-----------------------------------------------+
| Tables_in_sys                                 |
+-----------------------------------------------+

| x$waits_by_host_by_latency                    |
| x$waits_by_user_by_latency                    |
| x$waits_global_by_latency                     |
+-----------------------------------------------+   #删除了一部分
101 rows in set (0.02 sec)

show tables from (库名) 直接打开某库,不需要use()
此时依然在sys库,并未进入mysql库,仅仅在sys中查看mysql表

mysql> show tables from mysql;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
35 rows in set (0.00 sec)  #删除部分

查看正处于哪个库

select database();
意为调用database函数

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

创建并使用新库

mysql> create database test;
Query OK, 1 row affected (0.04 sec)
#创建名为test的库
mysql> create user 'mc'@'%' identified by '********密码';
Query OK, 0 rows affected (0.04 sec)
#identified 被识别过的
#’%’ 是可以任意ip登陆的权限 
#mysql> grant all privileges on databasename.* to 'databasename'@'%' with grant option;
#grant 授予  privileges 特权  option 选项
mysql> grant all privileges on databasename.* to 'mc'@'%' with grant option;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
#提示意思是不能用grant创建用户,mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权
mysql> grant all on *.* to 'mc'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;

验证

mysql> use mysql
Database changed
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | mc   '''存在'''  | *7549A4C27EDB13BD5EB3991B4332F22036A2AC74                              | mysql_native_password |

Q.bIAbfME1S6WOr1kNOHIiNqUEeRWtgmzxhR24Hctb5 | caching_sha2_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)

建表操作示例

mysql> use test
Database changed
mysql> create table day1.31(
    -> id int,
    -> name varchar(20));
ERROR 1049 (42000): Unknown database 'day1'
#不能使用  '.'  作为符号
mysql> select database();
+------------+
| database() |
+------------+
| test       |
+------------+
1 row in set (0.00 sec)
mysql> create table day131(
    -> id int,
    -> name varchar(20));
Query OK, 0 rows affected (0.07 sec)
#显示表列表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| day131         |
+----------------+
1 row in set (0.00 sec)
#describle 描述    显示表结构
mysql> describe day131;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
#可简写为 desc day1_31;
mysql> desc day1_31;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
# select *from 表名  显示表中数据
mysql> select *from day1_31;
Empty set (0.01 sec)
#重命名 old to new
mysql> rename table day131 to day1_31;
Query OK, 0 rows affected (0.05 sec)
mysql> drop table day1_31;
#删表
mysql> drop database test;
#删库

对表的基础增删改查

增:
insert into ** values( ** );
or: insert into name(*,,…) values(,,**…)
(insert v. 插入;(在文章中)添加;嵌入;附着;把……射入轨道;登载)

mysql> insert into day1_31 (id,name) values(1,'dog');
Query OK, 1 row affected (0.04 sec)

mysql> insert into day1_31 (id,name) values(2,'cat');
Query OK, 1 row affected (0.04 sec)

mysql> select *from day1_31;
+------+------+
| id   | name |
+------+------+
|    1 | dog  |
|    2 | cat  |
+------+------+
2 rows in set (0.00 sec)

删:
删除表格中的数据记录
delete from tablename where some column=somevalue
where 子句规定了需要被删除的数据记录,若省略了子句,所有的记录都将被删除

mysql> delete from day1_31 where id=1;
Query OK, 1 row affected (0.04 sec)

mysql> select *from day1_31;
+------+------+
| id   | name |
+------+------+
|    2 | cat  |
+------+------+
1 row in set (0.00 sec)

改:
更新表格中已存在的数据记录
update tablename… set column1=value1,column2=value2,…
where

where some_column=some_value;
where 子句规定了需要被更新的数据记录,若省略子句,所有的记录都将被更新
(update vt. 更新;校正,修正;使现代化 n. 更新;现代化)

mysql> update day1_31 set name='cat' where id=1;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select *from day1_31;
+------+------+
| id   | name |
+------+------+
|    1 | cat  |
|    2 | cat  |
+------+------+
2 rows in set (0.00 sec)

查:
select *from day1_31

mysql> select *from day1_31;
+------+------+
| id   | name |
+------+------+
|    1 | cat  |
|    2 | cat  |
+------+------+
2 rows in set (0.00 sec)

猜你喜欢

转载自blog.csdn.net/qq_27528193/article/details/113448778
今日推荐