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
..............略.........................
寄语:学习后总结,分享给需要的人,分享使我快乐!