文章目录
1、下载MySQL
2、下载完成后,解压、创建my.ini文件
我解压的路径:C:\mysql-8.0.21-winx64,在此文件夹下创建my.ini文件并把以下内容粘贴进去保存
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\mysql-8.0.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql-8.0.21-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3、安装mysql
管理员权限进入cmd命令窗口,且cd到安装路径的bin目录下。
依次输入:mysqld --install (安装) mysqld --initialize (初始化)net start mysql(运行)
C:\mysql-8.0.21-winx64\bin>mysqld --install
The service already exists!
The current server installed: C:\mysql-8.0.21-winx64\bin\mysqld MySQL
C:\mysql-8.0.21-winx64\bin>mysqld --initialize
C:\mysql-8.0.21-winx64\bin>net start mysql
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。
- 执行net start mysql时,可能遇到 如下问题
C:\mysql-8.0.21-winx64\bin>net start mysql MySQL 服务正在启动 .. MySQL 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。
- 问题分析
(1)安装目录下data文件夹是自己创建的,删除data文件夹,然后在MySQL文件夹的bin目录下CMD执行mysqld --initialize命令,重新初始化一个data文件。(大部分好像都是这个原因)
(2)系统中还有其他版本的MySQL,占用了MySQL的3306端口(查看已经占用的端口,netstat -ano)
(3)MySQL文件夹的bin目录下,CMD执行mysqld --console命令,查询错误日志,毕竟每个人遇到的错误原因都不一定相同,可以通过自己的日志找到自己真正错误的原因 - mysql安装之初始化报错:
原因:my.ini文件格式是utf-8。解决办法,my.ini文件另存为ANSI格式文件mysqld: [ERROR] Found option without preceding group in config file C:\mysql\my.ini at line 1.
4、修改密码
在data文件夹下找寻.err后缀的文件,打开文件找寻初始密码:
C:\mysql-8.0.21-winx64\bin>mysql -u root -p
Enter password: Z=Ydoh7eLky/ # 输入初始密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.21
Copyright (c) 2000, 2020, 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 user() identified by "123456"; # 新密码123456
Query OK, 0 rows affected (0.07 sec)
mysql>
5、创建用户和数据库,并将数据库授权用户
# 1、MySQL客户端连接MySQL服务端命令
mysql -uroot -p123456 # 密码123456
# 2、创建MySQL数据库,并授权用户
create database db1 charset=utf8; # 新建MySQL数据库:db1
create user user01 identified by '123456'; # 新建MySQL用户user01, 密码123456
grant all on db1.* to 'user01'@'%'; # 授权user01访问db1数据库
flush privileges; # 授权结束后刷新特权
- 修改用户密码(MySQL8.0新语法)
其中"root"@"localhost"
可以根据需要修改,例如"user01"@"%"
,%代表任意IP地址mysql> ALTER USER 'user01'@'%' IDENTIFIED WITH mysql_native_password BY '654321'; Query OK, 0 rows affected (0.07 sec)
备注:当用MySQL可视化工具—Navicat连接测试时,出现了1251错误提示(或者提示client需要更新),解决方法
mysql> alter user "root"@"localhost" identified with mysql_native_password by "123456";
Query OK, 0 rows affected (0.04 sec)
mysql> alter user "root"@"localhost" identified by "123456" password expire never;
Query OK, 0 rows affected (0.05 sec)
mysql> quit
Bye