1:下载MySql
官网下载地址:https://dev.mysql.com/downloads/mysql/
选择对应的下载文件。(我电脑是64位,所以这下载的是64位的下载文件)
不会下载可以网上搜索“”“mysql官网下载”,会出现很多教程,推荐一个位置:“https://www.cnblogs.com/pipi-changing/p/5452477.html”
2:安装MySql
打开下载文件解压到指定文件目录。(我这里解压目录为D:\mysql-5.7.21-winx64)
打开解压后的MySql文件在根目录下创建my.ini (mysql配置文件)
关于my.ini配置文件可以直接百度搜索,下面仅列出简单配置
my.ini文件内容如下:
(建议直接复制粘贴下面文件)
注意 :这里需要将basedir 与 datadir 路径改成自己mysql的解压路径 ,即mysql的文件路径
-
[mysql]
-
# 设置mysql客户端默认字符集
-
default-character-set=utf8
-
[mysqld]
-
#设置3306端口
-
port = 3306
-
# 设置mysql的安装目录
-
basedir=D:\mysql-5.7.21-winx64
-
# 设置mysql数据库的数据的存放目录
-
datadir=D:\mysql-5.7.21-winx64\data
-
# 允许最大连接数
-
max_connections=200
-
# 服务端使用的字符集默认为8比特编码的latin1字符集
-
character-set-server=utf8
-
# 创建新表时将使用的默认存储引擎
-
default-storage-engine=INNODB
找到CMD命令提示符,右键以管理员身份运行(必须以管理员身份运行,否则安装过程报错)
进入mysql子目录bin
依次输入:mysqld --install (安装) mysqld --initialize (初始化)net start mysql(运行)
若mysqld --install (安装)过程出现问题,检查配置文件basedir 与 datadir 路径的设置问题,
mysqld --initialize (初始化)过程出现问题,检查D:\mysql-5.7.21-winx64根目录下是否生成data文件,
3:设置MySql登录密码
早在之前几个版本mysql root账户的默认密码就不是空了,如果用空密码登录一定会报错。
mysql安装完成后打开mysql安装目录里面的data文件夹, 里面有个.err文件,用记事本打开,可以看到里面有行
A temporary password is generated for [email protected]: xxxxxxxx
localhost:后面的就是默认密码,复制这个密码即可登录,
登录成功后必须重设密码,否则会一直提示下面这行错误。
You must reset your password using ALTER USER statement before executing this statement.
执行下面命令重设密码,就可以正常使用了。(推荐第三种,以方便连接sqlyogent工具)
第一种:SET PASSWORD = PASSWORD(‘NEW PASSWORD‘)
第二种:alter user user() identified by "123456";
第三种:ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘新密码‘;
另一种方式设置MYSQL密码(这个方法不是每个人可以成功)。
密码设置步骤:
- 在my.ini文件末尾加上“skip-grant-tables”(取消权限设置)保存文件
- 重启mysql服务
- cmd下进入mysql - bin目录,输入 mysql -u root -p ,回车,这时候不需要密码即可登录
- 重置密码。输入 use mysql 回车
- 输入update user set authentication_string=password("newPassword") where user="root"; (新版本下mysql数据库password字段更改为authentication_string)
- 删除my.ini文件末尾“ skip-grant-tables”保存文件
- 重启mysql服务,就可以用新密码登录root账户
———————————————安装完成———————————————
可以用 命令查看一下默认安装的数据库:
show databases;
use mysql;
show tables;
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql>
看到默认初始化了mysql数据库,其中user表里面存储MySQL用户信息。我们可以看一下默认MySQL用户:
select user,host,authentication_string from mysql.user;
mysql> select user,host,authentication_string from mysql.user; +------------------+-----------+-------------------------------------------+ | user | host | authentication_string | +------------------+-----------+-------------------------------------------+ | mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-------------------------------------------+ 4 rows in set (0.00 sec) mysql>
管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”
创建用户:
CREATE USER ‘xxh‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘[email protected]#‘;
#(需要注意:mysql8.0加密方式修改了)
#检查用户
select user, host, plugin, authentication_string from user\G;
授权远程数据库
#授权所有权限
GRANT ALL PRIVILEGES ON *.* TO ‘xxh‘@‘%‘;
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO ‘xxh‘@‘%‘;
查看用户权限
show grants for ‘xxh‘@‘%‘;
示例:
mysql> use mysql; Database changed mysql> CREATE USER ‘xxh‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘[email protected]#‘; #创建用户(注意:mysql8.0加密方式修改了) Query OK, 0 rows affected (0.07 sec)
mysql>
查看密码加密方式:
mysql> select user, host, plugin, authentication_string from user; +------------------+-----------+-----------------------+-------------------------------------------+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+-------------------------------------------+ | xxh | % | mysql_native_password | *70FD6FB4F675E08FF785A754755B5EBA6DA62851 | | mysql.infoschema | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | mysql_native_password | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-----------------------+-------------------------------------------+ 5 rows in set (0.00 sec) mysql>
另外,如果需要新增账户,或者本机以外的其他人访问MySQL则还需要设置内置账户的host,具体可以参考:MySQL创建用户与授权
参考自:http://www.cnblogs.com/xiongzaiqiren/p/8970203.html
原文地址:https://www.cnblogs.com/yunian139/p/9537230.html