自定义配置文件,安装配备格局图像和文字化教育程

by admin on 2019年3月9日

利用PHP连接MySQL 8的时候,可能会发出如标题所示的荒唐:

下载zip安装包:

记录了mysql 8.0.12 的设置配备格局,分享给大家。

1、安装

安装进程中会出现如下提示:

2018-04-22T08:07:19.044013Z 1 [Note] A temporary password is
generated for root@localhost: TfrNnt9!k1xi

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

  MySQL8.0 For Windows
zip包下载地址:,进入页面后得以不记名。后点击底部“No
thanks, just start my download.”即可开头下载。

一、安装

2、登陆

其中TfrNnt9!k1xi 是开头密码,最好先记住!

而是在巅峰命令行 登陆mysql

mysql -u root -p

提示:-bash: mysql: command not found

遇上-bash: mysql: command not
found的情事别着急,那个是因为/usr/local/bin目录下缺点和失误mysql导致,只需建立软链接,即可以消除:

把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下: 

cd /usr/local/bin

ln -fs /MYSQLPATH/bin/mysql mysql

接下去登陆就OK啦(完事!)

发出那种破绽百出,是出于MySQL
8暗中同意使用了新的密码验证插件:caching_sha2_password,而从前的PHP版本中所带的mysqlnd十分的小概支撑那种验证。化解那几个题目,有两种格局。

  或间接下载:

1.从网上下载MySQL8.0.12本子,下载地址

叁 、修改密码

在MySQL8.0.4以前,执行 

SET PASSWO奥迪Q7D=PASSWOENCORED(‘修改的密码’); 

即可修改密码。

就算mysql是8.0本子以上,那样暗中认可是不行的。因为事先,MySQL的密码验证插件是“mysql_native_password”,而明日利用的是“caching_sha2_password”。

因为如今有许多数据库工具和链接包都不帮忙“caching_sha2_自定义配置文件,安装配备格局图像和文字化教育程。password”,为了方便,作者一时半刻如故改回了“mysql_native_password”认证插件。

在MySQL中执行命令:

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password
BY ‘新密码’;

一种方法是晋升PHP帮忙MySQL 8的新认证插件。

环境:Windows 10

bf88必发唯一官网 1

PHP 7.2.8和PHP 7.1.20已经得以支撑caching_sha2_password,直接连接MySQL
8。

一,安装

bf88必发唯一官网 2

终结PHP 7.0.31和PHP
5.6.37还不可能支撑caching_sha2_password,不通晓后续版本是还是不是会做出协理。

  1.1,解压zip包到安装目录

  比如自个儿的设置目录是:C:\Program Files\MySQL

  1. 下载达成后解压

能够因此phpinfo()函数领会当下安装的PHP是还是不是协助caching_sha2_password:

  1.2,配置文件

自定义配置文件,安装配备格局图像和文字化教育程。  在Windows系统中,配置文件暗许是安装目录下的 my.ini
文件(或my-default.ini),部分计划须要在开班安装时安插,超越四分一也能够在装置到位后开展更改。当然,极端情况下,全数的都以足以转移的。

  我们发现解压后的目录并从未my.ini文件,没提到能够自动创立。在装置根目录下添加
my.ini,比如本人那边是:C:\Program Files\MySQL\my.ini,写入基本配置:

 

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\Program Files\MySQL
# 设置mysql数据库的数据的存放目录
datadir=E:\database\MySQL\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 

 

专注,里面包车型大巴 basedir 是作者本地的安装目录,datadir
是自个儿数据库数据文件要存放的地方,各项安顿必要基于自身的环境实行配置。

翻看全体的安插项,可参看:

本人解压的门道是:D:\Java\mysql-8.0.12-winx64

bf88必发唯一官网 3

  1.3,发轫化数据库

在MySQL安装目录的 bin 目录下执行命令:

mysqld –initialize –console

履行到位后,会打字与印刷 root 用户的启幕暗许密码,比如:

C:\Users\Administrator>cd C:\Program Files\MySQL\bin

C:\Program Files\MySQL\bin>mysqld --initialize --console
2018-04-28T15:57:17.087519Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 4984
2018-04-28T15:57:24.859249Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E
2018-04-28T15:57:27.106660Z 0 [System] [MY-013170] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed

C:\Program Files\MySQL\bin>

 

  注意!执行输出结果里面有一段: [Note] [MY-010454] [Server] A temporary
password is generated for root@localhost:
rI5rvf5x5G,E 
里头root@localhost:前面包车型大巴“rI5rvf5x5G,E”正是伊始密码(不含第①个人空格)。在未曾变动密码前,供给牢记那么些密码,后续登录须要用到。

  就算您手贱,关快了,或然没记住,那也清闲,删掉开端化的 datadir
目录,再履行壹次起先化命令,又会重新生成的。当然,也能够采取安全工具,强制改密码,用如何艺术,自个儿随便。

参考:

 

  1. 布署文件

即使无法提拔PHP,能够在MySQL
第88中学创建(或涂改)使用caching_sha2_password插件的账户,使之使用mysql_native_password,那样先前版本的PHP就能够接连使用了。

  1.4,安装服务

在MySQL安装目录的 bin
目录下执行命令(以管理员身份打开cmd命令行,或然在安装目录Shift+右键“在此处打开命令行窗口”):

mysqld –install [服务名]

末尾的劳动名能够不写,默许的名字为
mysql。当然,假使您的微处理器上要求安装五个MySQL服务,就足以用分歧的名字分别了,比如
mysql5 和 mysql8。

安装达成之后,就足以通过命令net start
mysql
开发银行MySQL的服务了。

示例:

C:\Program Files\MySQL\bin>mysqld --install
Service successfully installed.

C:\Program Files\MySQL\bin>net start mysql
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。


C:\Program Files\MySQL\bin>

 

参考:

 

第②在解压的不二法门下查看是不是含有my.ini的文书,假使没有则新建一个,内容如下:

  1. 在CREATE USER时,使用IDENTIFIED WITH xxx_plugin BY
    ‘password’,比如:

    CREATE USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password!2#4';
    
  2. 采纳ALTE讴歌MDX USER修改已有账户的认证插件:

    ALTER USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password
    

    ALTER USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
    

    运用前一种方法,账户的密码将被破除;BY子句将为账户设置新的密码。

  3. /etc/my.cnf配置文件中,有一行:

    # default-authentication-plugin=mysql_native_password
    

    请删除注释符号“#”一碗水端平新起动mysqld使之生效,此后开立的账户均私下认可使用mysql_native_password。

  4. 倘使你成功MySQL
    Server的安装之后,在尚未运维过mysqld服务的场所下修改/etc/my.cnf配置,那么运转mysqld之后创设的’root’@’localhost’账户也是运用mysql_native_password插件的。

二,更改密码和密码验证插件

 

  在MySQL安装目录的 bin 目录下执行命令:

mysql -u root -p
  那时候会提示输入密码,记住了地点第2.3步安装时的密码,填入即可登录成功,进入MySQL命令格局。

在MySQL8.0.4以前,执行

SET PASSWORD=PASSWORD(‘[修改的密码]’);
就能够转移密码,不过MySQL8.0.4发端,那样暗许是可怜的。因为事先,MySQL的密码验证插件是“mysql_native_password”,而现行反革命选用的是“caching_sha2_password”。

  因为日前有广大数据库工具和链接包都不帮衬“caching_sha2_password”,为了有利于,笔者权且依然改回了“mysql_native_password”认证插件。

修改用户密码,在MySQL中执行命令:

ALTER USER ‘root’@’localhost’ IDENTIFIED
WITH mysql_native_password BY ‘新密码’;

修改密码验证插件,同时修改密码。

  倘诺想暗中同意使用“mysql_native_password”插件认证,能够在布局文件中布局default_authentication_plugin项。

[mysqld]
default_authentication_plugin=mysql_native_password

示例:

C:\Program Files\MySQL\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11

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> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
Query OK, 0 rows affected (0.06 sec)

mysql>

 

参考:

 

  到此,安装配置就落成了。官方说测试速度MySQL8比5快两倍。

 

  能够用 命令查看一下暗许安装的数据库:

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 ‘xxh123!@#’;

#(必要留意: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 'xxh123!@#'; #创建用户(注意: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创设用户与授权

 

转发请标明出处:

 

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Java\mysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Java\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

就这一个,希望有帮带。

  1. 数据库配置

经过管理员权限进入cmd(即便不是协会者权限就会面世难题)
,进入MySQL安装目录的bin目录下

bf88必发唯一官网 4

跟着输入mysqld –initialize
–console,就会产出以下画面,当中标红的为数据库root用户的伊始密码,一定要记住,后边登录须要选拔,当然倘使相当大心关掉了依然没记住,删掉初叶化的
data目录,再进行一次伊始化命令又会另行生成。

bf88必发唯一官网 5

再然后输入mysqld
–install安装mysql服务,输入net
start mysql运维服务,备注:mysqld
–remove是卸载MySQL服务,net stop
mysql是结束服务。

bf88必发唯一官网 6

  1. 进入数据库的布局

输入mysql -u root
-p后会让你输入密码,密码为眼下让您记住的密码,输入正确后就会油但是生如下界面,表示进入了MySQL命令方式。

bf88必发唯一官网 7

接着更改密码,输入ALTESportage USEOdyssey’root’@’localhost’ IDENTIFIED WITH mysql_native_bf88必发唯一官网,password BY
‘新密码’;  出现如下界面表示更改成功。

bf88必发唯一官网 8

到此,MySQL8.0.12数据库就设置到位了。

二 、数据库相关计划

翻开暗中同意数据库:show databases;

选择mysql数据库:use mysql

查看私下认可MySQL用户:select host, user,
authentication_string, plugin from user;

bf88必发唯一官网 9

创办新用户:CREATE USECRUISER ‘用户名’@’host名称’
IDENTIFIED WITH mysql_native_password BY ‘密码’;

给新用户授权:GRANT ALL PLacrosseIVILEGES ON *.*
TO ‘用户名’@’host名称’;

刷新权限: FLUSH PENCOREIVILEGES;

bf88必发唯一官网 10

bf88必发唯一官网 11

三 、难点详解

1. MySQL8.0.12无法三番五次Navicat

原因:MySQL8.0与MySQL5.0所采纳的加密方法规则不相同,所以造成 Navicat打不开。可由此select
host, user, authentication_string, plugin from user;查看密码的规则。

bf88必发唯一官网 12

如上海体育场地,plugin这一列正是对应用户的加密规则,能够观望自家的root用户的加密规则是:mysql_native_password,那是因为作者一度安装过了,私下认可的是:caching_sha2_password,所以大家只需求将默许的caching_sha2_password改为mysql_native_password即可。

赶尽杀绝方案:输入ALTER USER ‘root’@’localhost’ IDENTIFIED WITH
mysql_native_password BY
‘新密码’;即可修改root用户的加密规则以及密码。 

2. 授权出错,展现You are not allowed to create a user with GRANT

案由:在网上有广大科目说当出现The user
specified as a definer (‘root’@’%’) does not
exist时表示root用户权限不足,只须求执行GRANT ALL ON *.* TO
‘root’@’%’;
就足以了,但是反复又会现出You
are not allowed to create a user with
GRANT的失实提醒。那是因为GRANT ALL ON *.* TO
‘root’@’%’
;这条语句中@’%’中的百分号其实是root用户对应host的名号,很四人并没有理会到他的root用户对应的莫过于是localhost,直接就进行了上边的言辞,所以才会报错。

焚林而猎方案:只要将GRANT ALL ON *.* TO
‘root’@’%’;
中的%改为相应的host名称即可,最终还要刷新一下权力FLUSH
PRIVILEGES; 

专门表达:网上说%表示通配全数的host,可是操作时并不成功,不明白是干吗,笔者猜想或然与MySQL8.0版本有涉嫌。

bf88必发唯一官网 13

十全十美术专科学校题分享:

mysql分化版本安装教程

mysql5.7各版本安装教程

mysql5.6各版本安装教程

mysql8.0各版本安装教程

 以上正是本文的全体内容,希望对我们的上学抱有帮忙,也冀望我们多多帮忙脚本之家。

您或然感兴趣的篇章:

  • mysql community server
    8.0.12设置配置情势图像和文字教程
  • MySQL Community Server
    8.0.11装置配备格局图像和文字化教育程
  • Ubuntu Server
    16.04下mysql8.0安装配备图像和文字化教育程
  • MySQL8.0.3 ENVISIONC版即将发布先来探望有怎样变化
  • mysql8.0.2离线安装配备格局图像和文字化教育程
  • mysql installer community
    8.0.12.0安装图像和文字化教育程
  • mysql 8.0.12
    解压版安装教程
  • mysql 8.0.12 急迅安装教程
  • mysql 8.0.12
    安装配置格局并修改密码
  • mysql server
    8.0.3安装配备方式图像和文字化教育程

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图