MySQL 学习

官网地址:https://dev.mysql.com

学习教程:http://www.runoob.com/mysql/mysql-tutorial.html

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL有免费和付费版本。

所有平台的 MySQL 下载地址为: MySQL 下载 。 挑选你需要的 MySQL Community Server 版本及对应的平台。

Linux/UNIX 上安装 MySQL

Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:

  • MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
  • MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
  • MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
  • MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
  • MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

安装的三种方式:

1、通过web方式

2、通过非web方式

3、通过下载package安装方式

安装举例:

window10|mysql  Ver 8.0.13 for Win64 on x86_64 (MySQL Community Server - GPL)

安装的免费社区版本,步骤大致如下:

1、直接解压下载的package。

Windows 64 位 mysql 8.0.13 版本包解压中没有 data 目录和 my-default.ini 文件以及服务无法启动的解决办法以及修改初始密码的方法。

2、没有 my-default.ini 文件,你可以在根目录下自己创建一个 my.ini 文件,具体内容如下:
1.1、创建初始化文件my.ini 
[mysql] 
# 设置mysql客户端默认字符集 
default-character-set=utf8 [mysqld] 
# 设置3306端口 port = 3306 
# 设置mysql的安装目录 
basedir=C:webmysql-8.0.11 
#允许最大连接数 
max_connections=200 
#服务端使用的字符集默认为8比特编码的latin1字符集 
character-set-server=utf8 
#创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB

1.2、如果设置 mysql 数据库的数据的存放目录:

datadir=C:websqldata
这样会导致服务无法启动,不要添加这一句,也不要自己新建 data 文件夹,由 mysql 自动生成 data 就好。

以管理员的方式打开 cmd 命令窗口(直接打开 cmd 运行,可能会报错),并且进入到 mysql 安装目录的 bin 目录下。然后输入以下命令:

mysqld install
mysqld --initialize
net start mysql 
最后就会生成 data 目录。 

3、管理员权限启动cmd切换到安装目录bin下 

4、检查是否有mysql服务 mysqld --romve 删除mysql服务

5、安装mysql服务 mysqld --install

6、初始化mysql服务 mysqld --initialize 一定要初始化 ,如果我们是第一次启动 mysql 服务,mysql 服务器首先会进行初始化的配置。

7、启动MySQL服务 net start mysql 停止命令 net stop mysql

8、其他配置 修改root密码

9、相关报错处理 
9.1 安装mysql,走到net start mysql 启动服务这步时,老是报错3534,原因是服务还没删除,需要删除

 net start mysql     

9.2 登陆mysql报root密码错误
 mysql -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

在MySQL的目录文件下会发现initialize后出现的名为data的文件夹,其中有一个以.err为后缀的文件,以记事本格式打开,
查找‘password’,会发现有一句A temporary password ,意为“临时密码为:”,冒号之后的即是初次登录的密码

mysql -u root -p
D:mysql-8.0.13-winx64in>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9
Server version: 8.0.13

Copyright (c) 2000, 2018, 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>

 修改root密码

D:mysql-8.0.13-winx64in>mysqladmin -uroot -p"bK?K&9f!Tiwr" password "123"
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

D:mysql-8.0.13-winx64in>mysql -u root -p
Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 11
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, 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> quit
Bye

 其他修改方式参考:

方法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为例:   
1. 关闭正在运行的MySQL服务。   
2. 打开DOS窗口,转到mysqlin目录。  
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。  
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。  
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。  
6. 连接权限数据库: use mysql; 。  
7. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。  
8. 刷新权限(必须步骤):flush privileges; 。  
9. 退出 quit。  
10. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

 

添加用户:

MySQL 8.0.11 版本之后创建用户方法如下:

CREATE USER 'laowang'@'localhost' IDENTIFIED BY '123456';
授予账户权限的方法如下:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'laowang'@'localhost';
授予所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'laowang'@'localhost';
查看用户权限:

show grants for 'laowang'@'localhost';
 mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'G;

会出现:

ERROR: 
No query specified
去掉分号就可以了,G 和分号 ; 的作用相似,两者取其一即可。

 

mysql, mysqladmin, mysqld之间的区别。

mysqld is the server executable (one of them)   #服务执行工具    
mysql is the command line client  # 客户端工具   查询用
mysqladmin is a maintainance or administrative utility  # 运维和管理工具

  



原文地址:https://www.cnblogs.com/dahaoran/p/9917968.html