mysql数据库no query specified_分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!...

Mysql5.6安装

下载好安装包后,在bin目录下用cmd打开,输入mysqld install 【服务名】新建个服务

在windows+r输入services.msc即可查看服务

怎样使用mysql

在本地电脑上安装好mysql服务器后,使用命令开启mysql服务,命令为net start mysql,我的mysql服务名是这个,开启服务的语法是  net start 服务名

成功返回服务已启动

b9e08a96c330bf782ff84180fb7bc8ab.png

第一次使用mysql,采用mysql -u root -p进入mysql服务器,此时没有设置root用户登录密码,默认端口是3306,默认进入

设置登录密码采用命令

1 INSERT INTO mysql.user (Host,User,Password) VALUES ('%','system', PASSWORD('root'));2 FLUSH PRIVILEGES;

这样就可以将root用户的密码更改为root了

3b5c353cf3edf2a04ce19d50fd7eb3a0.png

在安装mysql时候遇到的坑,有些时候安装好的mysql数据库会只有两个,我之前安装mysql数据库时,发现登录进去只有两个数据库,正常情况下是有四个数据库的,所以我就重新安装了mysql数据库

11c13fb8a89f89fdfdeee7005ddb464a.png

有些教程会让你开启服务后初始化数据库

mysqld --initialize --console # 初始化数据库

但是事实上,mysql5.6是不需要初始化的,否则会报错mysqld: unknown option '--initialize'这样的错误

设置登录密码时使用 mysql -u root -p 进入mysql,会产生报错,不像有些博主描述的那样,

原因未知

方法1: 用SET PASSWORD命令

格式: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> usemysql;

mysql> update user set password=password('123') where user='root' and host='localhost';

mysql> flush privileges;

Mysql卸载

我是直接将整个安装目录删除,然后发现服务列表里还是会有mysql服务,因此,需要去注册列表里去删除,注册列表打开windows+r,输入regedit,在计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL,删除mysql服务,这样下次安装mysql的时候才不会报错,服务已经存在,具体参照博客:https://www.cnblogs.com/hskw/p/9298108.html,要关机重启一下,原来的服务才会消失。不然报错error:该mysql57服务仍在,并且显示””,双击它出现,在本地计算机上找不到该文件,启动不了,也删不掉。重新安装也不能覆盖

最好的方式是删除之前,在安装bin目录下使用命令, mysqld remove [服务名] 移除服务

其次是使用windows自带的命令sc delete 服务名,sc query mysql 查询mysql服务

Mysql.ini 文件的修改

Mysql文件默认在安装路径之下

467e0db5df6fc2364803a3edf08d1a06.png

这里有些博主说要改文件名,为my.ini,但是我是没改的,事实上也不会报错什么的,因此,改不改都是无所谓的!

配置内容:

1 [mysql]2

3 #设置mysql客户端默认字符集4

5 default-character-set=utf86

7 [mysqld]8

9 #设置mysql端口10

11 port=3306

12

13 #设置mysql安装目录14

15 basedir=E:\Mysql56\mysql-5.6.47-winx64\mysql-5.6.47-winx6416

17 #设置mysql存放data的目录18

19 datadir=E:\Mysql56\mysql-5.6.47-winx64\mysql-5.6.47-winx64\data20

21 #允许最大的连接数22

23 max_connections=200

24

25 #服务端使用字符集默认为8比特编码的latin1字符26

27 character-set-server=utf828

29 #创建新表时默认的存储引擎30

31 default-storage-engine=INNODB32

33 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

这里要留心【mysql】,【mysqld】下面的配置内容,不能乱了,不然mysql会读取不了配置文件,加载失败,我在这里弄了很久!

怎样确认mysql.ini是否生效?

这一步首先要确保你的ini文件是正确的,不然会发生1067的报错。

ec3b616f4325e3670beb37b3bccddcbc.png

应该修改查看mysql的启动加载的ini文件,我的一开始是没有加载ini文件的,根据下面的博客修改启动项。

位置在:win+R---->regedit---->HKEY_LOCAL_MACHINE---->SYSTEM---->CurrentControlSet---->Services---->MySQL

在注册表修改启动项参数,根据路径找到ImagePath,双击,就会弹出这个编辑字符串,把这个修改一下,在中间加上下面这行内容,注意“ -- ”前面有空格,前面那个是mysqld的加载路径,后面那个是你的服务名称,不需要改动。

--defaults-file="安装路径\my-default.ini"

46d8b6f06f395e2c2b993cf4ef7b119e.png

配置成功是这样子的,可以在可执行路径上看到加载的配置文件

查看mysql版本信息,进入mysql数据库后输入status,查看数据库信息,是否与配置文件成功就知道修改成功没有!

查看当前默认的引擎:

mysql> show variables like 'default_storage_engine';

安装Mysql8出现的问题

系统找不到指定的文件、发生系统错误 1067 进程意外终止,这个是因为配置文件没有加载成功,找不到服务。

在安装mysql8的过程中,一开始执行mysqld install【服务名】时就发生报错,原因是我缺少vcruntime140_1.dll,这个提示已经非常明确,只要找个这个动态链接库安装到C\system32里面,我之前查找的时候果然发现我没有这个库,注意一定是vcruntime140_1.dll,不是vcruntime140.dll。

8345da6fda8fd2e377dab063e2b592e2.png

这个上面会报2003,错误,2003错误通常都是服务没开启或者是端口没连上,因为我修改了mysql8数据的默认链接端口,所以登录命令要指定mysql8的端口才能登录

mysql8配置文件

1 [mysqld]2 port=3307

3 basedir=E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx644 datadir=E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\data5 max_connections=200

6 max_connect_errors=10

7 character-set-server=utf88 default-storage-engine=INNODB9 default_authentication_plugin=mysql_native_password10 # 设置3307端口,为了与旧版本的区分不冲突11 # 设置mysql的安装目录12 # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧13 # 设置mysql数据库的数据的存放目录14 # 允许最大连接数15 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统16 # 服务端使用的字符集默认为UTF817 # 创建新表时将使用的默认存储引擎18 # 但因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时改回了“mysql_native_password”认证插件。
#默认使用“mysql_native_password”插件认证19 [mysql]20 # 设置mysql客户端默认字符集21 default-character-set=utf822 [client]23 # 设置mysql客户端连接服务端时默认使用的端口24 port=3307

25 default-character-set=utf8

mysql8要执行这个命令 mysqld --initialize --console # 初始化数据库 进行初始化,因为root用户的初始登录密码在里面.

E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin>mysqld --initialize --console

2020-02-02T06:04:37.062657Z 0 [System] [MY-013169] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) initializing of server in progress as process 9616

2020-02-02T06:04:37.065698Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.

2020-02-02T06:04:37.065724Z 0 [ERROR] [MY-013236] [Server] The designated data directory E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\data\ is unusable. You can remove all files that the server added toit.2020-02-02T06:04:37.089282Z 0 [ERROR] [MY-010119] [Server]Aborting2020-02-02T06:04:37.091878Z 0 [System] [MY-010910] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.19) MySQL Community Server -GPL.

E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin>mysqld --initialize --console

2020-02-02T06:07:06.828384Z 0 [System] [MY-013169] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) initializing of server in progress as process 4372

2020-02-02T06:07:10.079556Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Zkhir&Cd3Nug

这个我这里初始化的时候发生了错误,根据网上的教程,我把mysql目录下的data文件全部删除了,然后再执行一次,可以发现就没有错误了,并且告诉了root用户的初始化密码

接下来就是使用mysql命令进入数据库啦!

msyql8修改初始密码

0799782b4a45b5cc7ed5fdaa2ff507fe.png

修改成功后的配置

989c285ceda6944d9fa369d6757c9562.png

整个配置还是挺多坑的,但是自己要学会去百度,学会去看报错信息,才能快速的解决问题,

PS:所有终端都要在管理员权限下打开,防止权限不够,我设置了两个mysql的端口,一个是3306,一个是3307,所以可以同时打开两个不同版本的数据库

最后,我没有设置环境变量,因为我担心会出错,打开两个不同版本的数据库时,所以自己知道安装路径就行了,整个过程安装了不间断安装了两天,

第一次写博客,所以希望尽量把自己遇到的坑告诉大家!

597cc0c1b41b8bf743bf2eb7a91c92c7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值