mysql免安装版安装配置过程中遇到的问题和相关的解决
下午在安装mysql-5.7.15时遇到不少问题,现在一一记录。
首先,在官网上下载的是mysql免安装的zip文件,然后将其解压在了d盘根目录下面了,开始按照网上的教程一步步进行配置,本人使用的电脑是win10 64位。
1.在环境变量path中配置了mysql的bin路径
2.配置默认文件:因为现在mysql是默认配置,在使用的过程中会出现很多问题,如汉字是乱码等。我们新建配置文件my.ini,放在mysql的根目录下,键入如下代码:
[mysqld]
skip-grant-tables
#5.7专用去掉ONLY_FULL_GROUP_BY,重新设置值。
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=G:\utils\mysql-5.7.30-winx64
# 设置mysql数据库的数据的存放目录
datadir=G:\utils\mysql-5.7.30-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
注意这里保存时编码为ansi,否则会报如下错误:error: Found option without preceding group in config file: D:\Program Files\mysql-5.6.25-winx64\my.ini at line: 1 Fatal error in defaults handling. Program aborted。特别说明.ini文件是window里面的配置文件。保存里面各种默认的数据。安装版的是在安装的时候让你自己选然后系统给你保存进来,zip archive是自己写,都一样。
3.在myslq文件的bin目录下运行管理员命令行,输入mysqld --install进行mysql的安装
之后开始出现问题
mysql> update user set password=password('123456') where user='root'; ERROR 1054 (42S22): Unknown column 'password' in 'field list'
问题解决win下mysql的密码列是authentication_string,使用语句mysql>update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
解决
MYSQL 安装出错initialize specified but the data directory has files in it. Aborting.Newly created data
如图mysqld --initialize --console后出现报错
initialize specified but the data directory has files in it.
Newly created data directory
其实是data中存在了已有的数据 ,删除data 文件中的数据即可。
搞定
mysql.zip版本的安装教程
一直以来都习惯了使用MySQL安装文件(.exe),今天下载了一个.zip版本的MySQL,安装过程中遇到了一些问题,如下:
1.在MySQL官网上(http://dev.mysql.com/downloads/mysql/)下载免安装版的zip文件(本文以mysql-5.7.14-winx64.zip为例)
2.将zip文件解压到本地,本文解压到如下目录:D:\softwares\mysql-5.7.14-winx64
3.新建一个配置文件(my.ini)用于配置字符集、端口等信息,用以覆盖原始的配置文件(my-default.ini),当然也可以修改这个默认的配置文件。新建文件夹data存放MySQL数据。如下:
将以下内容复制到新建的配置文件中,其中basedir和datadir设置mysql文件夹路径:
[mysql]
\# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
\#设置3306端口
port = 3306
\# 设置mysql的安装目录
basedir=D:\\softwares\\mysql-5.7.14-winx64
\# 设置mysql数据库的数据的存放目录
datadir=D:\\softwares\\mysql-5.7.14-winx64\\data
\# 允许最大连接数
max_connections=200
\# 服务端使用的字符集默认为UTF8
character-set-server=utf8
\# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
4.输入cmd,以管理员身份运行控制台,进入MySQL路径(D:\softwares\mysql-5.7.14-winx64\bin)下,运行mysqld install命令。注意:这里需要以管理员身份运行,否则提示如下:
5.安装成功后,如下:
启动mysql服务,以为万事ok了,结果如下:
6.在网上搜索3534这个错误信息,有人说是从5.7.6开始需要执行mysqld --initialize方法(http://www.mamicode.com/info-detail-1150164.html)。解决方法如下:
1) 执行mysqld -remove命令将以前的错误安装删除,否则会提示已经安装
2)执行mysqld --initialize命令后再执行mysqld install,再执行net start mysql启动MySQL,一切ok
7.执行”mysqladmin -u root password 密码“设置初始密码,设置ok后执行mysql -u root -p回车然后输入密码,即可登录mysql
8.若my.ini文件中的basedir和datadir不是以”\“表示路径,在执行mysqld --initialize命令时会报一下错误:
9.可以设置环境变量,启动cmd输入mysql -u root -p密码即可登录mysql,而不用切换到mysql安装目录的bin目录下,
本文可以将D:\softwares\mysql-5.7.14-winx64\bin设置到环境变量path中,启动cmd后可以直接输入连接mysql的命令,如下:
mysql5.7的初始密码位置
今天安装了mysql5.7,在执行mysql -u root -p时,失败了。
在****mysql目录/data****下面,找到一个.err文件,打开,发现了密码:
2018-09-14T02:06:11.234666Z 1 [Note] A temporary password is generated for root@localhost: ***\*>#PDQ=hmU6dB\*
***
因此,在提示输入密码时,把上面红色的密码填入,就成功了!!
1045 Access denied for user 'root'@'localhost' (using password: YES)
MySQL 连接错误,使用Navicat连接MySQL出现错误:1045 Access denied for user 'root'@'localhost' (using password: YES)
解决方法:
编辑**mysql配置文件my.ini**(在mysql的安装目录下,不同电脑可能不一样,参考目录①D:\Program Files\MySQL\MySQL Server 5.0\my.ini;②C:\ProgramData\MySQL\MySQL Server 8.0\my.ini;),在**[mysqld]这个条目下**加入 skip-grant-tables 保存退出后重启mysql
1.打开cmd,点击“开始”->“运行”(快捷键Win+R)。
2.停止:输入 net stop mysql
3.启动:输入 net start mysql
也可以在计算机-管理-服务里面找到MySQL的服务,如图
这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为没有grant权限。
继续按下面的流程走:
1.进入mysql数据库:
mysql> use mysql;
Database changed
2.给root用户设置新密码:
mysql> update user set password=password("新密码") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
5.7以后用
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4.退出mysql:
mysql> quit;
Bye
改好之后,再修改一下my.ini这个文件,把我们刚才加入的 "skip-grant-tables"这行删除,保存退出再重启mysql服务,再重新用Navicat连接就可以了。
错误代码1862-mysql
问题描述
mysql密码过期(不是不对),导致连接不上数据库!
错误显示
错误显示
错误显示
windows 解决方法
- 进入安装目录的bin目录下,执行 mysql -uroot -p 进入mysql shell
进入mysql shell
- 执行use mysql显示情况
use mysql
- 使用
SET PASSWORD = PASSWORD('root');
修改密码
修改密码