备注:环境为MySQL Community Server 8.0.19版本
第二步:打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
[client]
# 设置mysql客户端默认字符集default-character-set=utf8
[mysqld]
# 设置3306端口
port= 3306# 设置mysql的安装目录
basedir=C:\\web\\mysql-8.0.11# 设置 mysql数据库的数据的存放目录,MySQL8+不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB
第三步:以管理员身份运行控制台程序
首先切换到对应的文件夹:
cd E:\mysql-8.0.19-winx64\bin
初始化数据库:(空格不可省略)
mysqld --initialize --console
执行完成后,会输出 root 用户的初始默认密码,如:
光知道密码还不够,我们还需要安装:
mysqld install
知道初始密码后我们就可以登录我们的mysql数据库了,但是我们还要开启mysql服务:
net start mysql 启动mysql服务
net stop mysql 关闭mysql服务
服务启动成功后我们就可以登录我们的数据库啦:
mysql -h 主机名 -u 用户名 -p
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
实例:mysql -h 192.168.0.201 -P 3306 -u root -p123
成功效果:
失败效果:失败可能是服务没开,配置不对,等等原因,具体原因具体分析
登录成功后我们首先需要修改我们的初始密码
8.0以前版本代码
update user set password=password('你的密码') where user='root' and host='localhost';
8.0以后版本
"ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';"
之后我们就可已创建我们的用户和权限了
8.0之前
root@host# mysql -u root -p
Enter password:*******mysql>use mysql;
Database changed
mysql>INSERT INTO user
(host, user, password,
select_priv, insert_priv, update_priv)
VALUES ('localhost', 'guest',
PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK,1 row affected (0.20sec)
mysql>FLUSH PRIVILEGES;
Query OK,1 row affected (0.01sec)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';+-----------+---------+------------------+
| host | user | password |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)
8.0之后
mysql> grant all on *.* to 'admin'@'%' identified by 'admin123';
ERROR1064 (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 'identified by'admin123'' at line 1mysql> create user 'admin'@'%' identified by 'admin123';
Query OK,0 rows affected (0.06sec)
mysql> grant all on *.* to 'admin'@'%';
Query OK,0 rows affected (0.04sec)
mysql>flush privileges;
Query OK,0 rows affected (0.00 sec)