本文全部方案贡献来自于互联网的各位兄弟姐妹,没有亮出摘自哪篇文章是因为我参考的文章实在是太多了(我的问题也太多了,安装了大半天,所谓是步步卡)。
cmd提示错误(详见下文加粗加斜字体)
- ‘mysql’ 不是内部或外部命令,也不是可运行的程序或批处理文件是处理方法
- mysql服务无法启动且服务没有报告任何错误解决方法
- ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
- ERROR 1046 (3D000): No database selected
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near…
mysql有两种安装方法(.msi和.zip),本次采用的是zip安装,版本5.7.29。
安装大致步骤
- 解压 .zip到 D:\Program Files\mysql-5.7.29-winx64\bin
- 配置环境变量 计算机→属性→高级系统设置→环境变量→系统变量→path→编辑→;D:\Program Files\mysql-5.7.29-winx64\bin
- 写配置文件 .ini 注意改路径basedir和datadir,改成你自己存的路径
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=F:\mysql\mysql-5.7.24-winx64\mysql-5.7.24-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\mysql\mysql-5.7.24-winx64\mysql-5.7.24-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
- (也许是)新建data文件夹
- 运行cmd,写相关命令(我直接以管理员身份)
a. 先切换路径,默认C盘,输入d:(不要忘记那重要的冒号)
b. 再切换路径,输入cd D:\Program Files\mysql-5.7.29-winx64\bin
c. 安装:输入mysqld -install,提示成功
d. 初始化:输入mysqld --initialize-insecure --user=mysql (此时data文件夹里生成了一堆文件)
e. 启动mysql服务:输入net start mysql (中止服务:输入net stop mysql),提示已启动
f. root用户登录:输入mysqladmin -u root -p password ,此时出现提示Enter password: ,手动回车,不要输入密码(此版本无登录密码)
g. 测试mysql安装情况:输入mysql -u root -p,手动回车,进入到mysql路径里,输入sql语句SHOW DATABASE;出现结果则代表成功。
h. 设置密码,输入
mysql mysql -u root -p
update user set authentication_string=PASSWORD("密码") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit;
每条语句后cmd都会出现提示信息。
我安装中出现的问题
- 无
- 网上有的说在用户变量里新建,还有balabala… 一定要点编辑,不要新建,也千万别删掉原有的东西,最最重要的是不要忘了分号隔开!!!
- 此文档有很多种,我随便选了一个。刚开始不知道要自己改路径basedir和datadir,cmd有提示错误,我忘记了提示的是什么了。
- 有的说要自己建个data文件夹,有的说初始化步骤后自己会生成一个data文件夹。我自己建了一个没啥问题。
- a. 我研究了好久
b. 我研究了好久
(a和b不会操作,cmd提示 ’mysql’ 不是内部或外部命令,也不是可运行的程序或批处理文件是处理方法)
c. mysqld -install 中间有空格!!!
(c不会操作,cmd提示 mysql服务无法启动 服务没有报告任何错误解决方法)
d. 在进行了c步骤后,先e后d和先d后e生成的data文件夹内容不一样,也会导致安装失败。如果你先e后d了,要先删除data文件夹,mysqld -remove→c→d→e→…。
e. 无
f. 先前以为有密码(我输入密码后,cmd提示 ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) ) ,后来才知道5.7.29版本登录无需密码,直接回车进行后续操作即可。一般有密码的版本,如果密码直接告诉,记住即可;没有告诉的,找到data文件夹,有一个err文件,用记事本打开,有一条 [Warning] A temporary password is generated for root@localhost:********** ,像此版本如此特殊没有密码,文件也告诉了 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
g. 注意sql语句分号别忘写
h. 关于设置密码的命令网上有许多版本。
第一个版本:输入update user set password=password(“your_pwd”) where user=‘root’; 在我输入后,cmd提示 ERROR 1046 (3D000): No database selected … 此错误告知我没有user这个数据库。于是我输入user,想法是想查看user这个数据,cmd提示 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near … 此错误告知我这个sql语句是错的。于是我就开始研究怎么弄出来user这个数据库,有人说这么做,
use mysql; (cmd提示Database changed,SHOW DATABASES;会发现出现user库)
selcet user,password,host from user;
update user set password=password("your_pwd") where user='root';
flush privileges; (刷新权限)
但是,我没搞出来,依旧没有user库,但是我在data\mysql里找了user相关的文件,我也不知道和user库有没有什么关系。
第二个版本:输入
use mysql;
update mysql.user set authentication_string=password('rootroot') where user='root';
flush privileges;
quit;
又一次涉及到了user,cmd再次提示 ERROR 1046 (3D000): No database selected …
第三个版本,就是我试成功的这个了,代码如上。