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:\web\mysql-8.0.11 #允许最大连接数 max_connections=200 #服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB 1.2、如果设置 mysql 数据库的数据的存放目录: datadir=C:\web\sqldata 这样会导致服务无法启动,不要添加这一句,也不要自己新建 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-winx64\bin>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-winx64\bin>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-winx64\bin>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窗口,转到mysql\bin目录。 3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 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 # 运维和管理工具