MySQL 的安装与使用(一)

一、Windows 上安装 MySQL

1、Windows 上安装 MySQL 相对来说会较为简单,地那就链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 下载 zip 包。
最新版本可以在 MySQL 下载中下载中查看。

点击 Download 按钮进入下载页面,点击下图中的 No thanks, just start my download. 就可立即下载:

 2、下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\mysql\mysql-8.0.13-winx64 下。接下来我们需要配置下 MySQL 的配置文件

打开刚刚解压的文件夹 D:\mysql\mysql-8.0.13-winx64 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\mysql\\mysql-8.0.13-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

3、接下来我们来启动下 MySQL 数据库:以管理员身份打开 cmd 命令行工具,切换目录:cd D:\mysql\mysql-8.0.13-winx64

(1)以管理员身份运行cmd.exe,进入安装的bin目录下,初始化数据库,输入:mysqld --initialize-insecure --user=mysql 命令,然后回车!

(2)输入mysqld install安装服务,安装成功会提示安装成功,然后启动MySQL服务

(3)配置环境变量将bin目录,配置到path中;

 

(4)开启MySQl服务输入: net start mysql 启动服务   net stop mysql 停止服务

 

(5)登录输入:mysql -uroot -p 命令,默认是没有密码的,回车进入。如果有的已经设置密码了,回车后输入密码进入(密码是看不见的输入后回车即可)

(6)mysql如何修改root用户的密码

         此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

//1、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。
use mysql; 
update user set authentication_string='' where user='root'
//2、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:
ALTER user 'root'@'localhost' IDENTIFIED BY 'new password'

温馨提示:如果Navicat链接提示报错如下:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root密码';
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

此处有两点需要注意:
1、不需要flush privileges来刷新权限。
2、密码要包含大写字母,小写字母,数字,特殊符号。
 修改成功; 重新使用用户名密码登录即可;
注意: 一定不要采取如下形式该密码:

use mysql; 
update user set authentication_string="newpassword" where user="root"; 

这样会给user表中root用户的authentication_string字段下设置了newpassword值;
当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;
因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

-------------------------------------------------------------------------------------------------------------------

老版本修改密码,参考如下总结:

方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');

方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123

方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;

方法4:在忘记root密码的时候,可以这样
以windows为例:
①.关闭正在运行的MySQL服务。
②. 打开DOS窗口,转到mysql\bin目录。
③. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
④. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
⑤. 输入mysql回车,如果成功,将出现MySQL提示符 >。
⑥. 连接权限数据库: use mysql; 。
⑦. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
⑧. 刷新权限(必须步骤):flush privileges; 。
⑨. 退出 quit。
⑩. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

3、管理MySQL的命令

(1)SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表。

(2)USE 数据库名 ;SHOW TABLES:显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库

(3)SHOW COLUMNS FROM 数据表:显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

mysql> SHOW COLUMNS FROM columns_priv;
+-------------+----------------------------------------------+------+-----+-----
--------------+-----------------------------------------------+
| Field       | Type                                         | Null | Key | Defa
ult           | Extra                                         |
+-------------+----------------------------------------------+------+-----+-----
--------------+-----------------------------------------------+
| Host        | char(60)                                     | NO   | PRI |
              |                                               |
| Db          | char(64)                                     | NO   | PRI |
              |                                               |
| User        | char(32)                                     | NO   | PRI |
              |                                               |
| Table_name  | char(64)                                     | NO   | PRI |
              |                                               |
| Column_name | char(64)                                     | NO   | PRI |
              |                                               |
| Timestamp   | timestamp                                    | NO   |     | CURR
ENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
| Column_priv | set('Select','Insert','Update','References') | NO   |     |
              |                                               |
+-------------+----------------------------------------------+------+-----+-----
--------------+-----------------------------------------------+
7 rows in set (0.00 sec)

(4)SHOW INDEX FROM 数据表:显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

mysql> SHOW INDEX FROM columns_priv;
+--------------+------------+----------+--------------+-------------+----------
+-------------+----------+--------+------+------------+---------+--------------
+---------+------------+
| Table        | Non_unique | Key_name | Seq_in_index | Column_name | Collation
| Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment
| Visible | Expression |
+--------------+------------+----------+--------------+-------------+----------
+-------------+----------+--------+------+------------+---------+--------------
+---------+------------+
| columns_priv |          0 | PRIMARY  |            1 | Host        | A
|           0 |     NULL |   NULL |      | BTREE      |         |
| YES     | NULL       |
| columns_priv |          0 | PRIMARY  |            2 | Db          | A
|           0 |     NULL |   NULL |      | BTREE      |         |
| YES     | NULL       |
| columns_priv |          0 | PRIMARY  |            3 | User        | A
|           0 |     NULL |   NULL |      | BTREE      |         |
| YES     | NULL       |
| columns_priv |          0 | PRIMARY  |            4 | Table_name  | A
|           0 |     NULL |   NULL |      | BTREE      |         |
| YES     | NULL       |
| columns_priv |          0 | PRIMARY  |            5 | Column_name | A
|           0 |     NULL |   NULL |      | BTREE      |         |
| YES     | NULL       |
+--------------+------------+----------+--------------+-------------+----------
+-------------+----------+--------+------+------------+---------+--------------
+---------+------------+
5 rows in set (0.36 sec)

(5)SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G: 该命令将输出Mysql数据库管理系统的性能及统计信息

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> SHOW TABLE STATUS FROM mysql; # 显示数据库 mysql中所有表的信息

mysql> SHOW TABLE STATUS from mysql LIKE 'user%'; # 表名以user开头的表的信息
mysql> SHOW TABLE STATUS from mysql LIKE 'user%'\G;   # 加上 \G,查询结果按列打印
例如:
mysql> SHOW TABLE STATUS  FROM mysql;
+---------------------------+--------+---------+------------+------+------------
----+-------------+-----------------+--------------+-----------+----------------
+---------------------+---------------------+------------+-----------------+----
------+---------------------------------------+---------------------------------
--------+
| Name                      | Engine | Version | Row_format | Rows | Avg_row_len
gth | Data_length | Max_data_length | Index_length | Data_free | Auto_increment
| Create_time         | Update_time         | Check_time | Collation       | Che
cksum | Create_options                        | Comment
        |
+---------------------------+--------+---------+------------+------+------------
----+-------------+-----------------+--------------+-----------+----------------
+---------------------+---------------------+------------+-----------------+----
------+---------------------------------------+---------------------------------
--------+
| columns_priv              | InnoDB |      10 | Dynamic    |    0 |
  0 |       16384 |               0 |            0 |   4194304 |           NULL
| 2019-01-16 20:24:01 | NULL                | NULL       | utf8_bin        |
 NULL | stats_persistent=0                    | Column privileges
        |
| component                 | InnoDB |      10 | Dynamic    |    0 |
  0 |       16384 |               0 |            0 |   4194304 |              1
| 2019-01-16 20:24:02 | NULL                | NULL       | utf8_general_ci |
 NULL |                                       | Components
..............略.........................

寄语:学习后总结,分享给需要的人,分享使我快乐!

posted @ 2019-01-16 21:44  o小兵o  阅读(557)  评论(0编辑  收藏  举报