今天安装mysql 8.0版本,碰到过很多奇奇怪怪的错误,每一个都困了好久。后来好几次重新配置安装,终于一次性搞定,特此记录,也希望可以帮助更多使用者。
1.下载免安装Mysql版本,mysql网站下载即可,点此直达下载链接
2.解压后,优先配置环境变量。
2.1 新建MYSQL_HOME变量,填入Mysql文件夹目录
2.2 在path变量中,最后面添加 %MYSQL_HOME%\bin;
3.编辑my.ini,放至mysql文件夹内,参考如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\\My\\mysql-8.0.19-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\\My\\mysql-8.0.19-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
安装目录和存放目录记得修改为自己本机上的实际目录
4.命令行进入mysql文件夹的bin目录,挨个输入如下命令
4.1 mysqld install (安装Mysqld)
C:\My\mysql-8.0.19-winx64\bin>mysqld install
Service successfully installed.
4.2 mysqld --initialize-insecure (该命令可以设置mysql初始密码为空,命令执行完无输出)
C:\My\mysql-8.0.19-winx64\bin>mysqld --initialize-insecure
4.3 net start mysql (启动mysql服务)
C:\My\mysql-8.0.19-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
4.4 mysql -uroot -p,输完回车后,会出现Enter Password,直接回车就好
正常情况下就会登录Mysql了,接下来需要重置密码
C:\My\mysql-8.0.19-winx64\bin>mysql -uroot -p
4.5 use mysql
mysql> use mysql
Database changed
4.6 alter user ‘root’@‘localhost’ identified by ‘你想要设置的密码’;
mysql> alter user 'root'@'localhost' identified by '你的密码';
Query OK, 0 rows affected (0.01 sec)
4.7 flush privileges;
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
4.8 exit,之后重新执行4.4步,输入刚刚设置的密码。
mysql> exit
Bye
5.如果此时的你出现了各种奇奇怪怪的问题,比如这种
或者这种
注意请忽略,不要在网上查这些问题怎么解决,我基本都试过了,没什么用。
按照下面步骤做就能很快成功。
5.1 重新进入Mysql文件夹的bin目录
5.2 执行 net stop mysql命令,关闭mysql服务;
C:\My\mysql-8.0.19-winx64\bin>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
5.3 执行Mysqld remove命令,移除已安装Mysqld。
C:\My\mysql-8.0.19-winx64\bin>mysqld --remove
Service successfully removed.
5.4 检查环境变量和my.ini文件是否有问题,之后再次执行步骤4的全部命令。
6.如果是服务端配置,还需要允许mysql数据库可以被远程访问
6.1 执行 update user set host = ‘%’ where user = ‘root’;
mysql> update user set host = 'localhost' where user = 'root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
6.2 再执行FLUSH PRIVILEGES,即可。
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
愿这篇教程可以助你一步到位,少走弯路。