MYSQL数据库学习(一)搭建环境,创建角色分配权限

备注:环境为MySQL Community Server 8.0.19版本

第一步:先到官网下载,这里我下载的是绿色版链接:https://dev.mysql.com/downloads/mysql/

第二步:打开刚刚解压的文件夹 C:webmysql-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数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\web\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

具体其他ini配置可参考这篇博客:https://blog.csdn.net/lienfeng6/article/details/78140404

第三步:以管理员身份运行控制台程序

 首先切换到对应的文件夹:

cd E:mysql-8.0.19-winx64in

初始化数据库:(空格不可省略)

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.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

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';
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 'identified by 'admin123'' at line 1
mysql> create user 'admin'@'%' identified by 'admin123';
Query OK, 0 rows affected (0.06 sec)

mysql> grant all on *.* to 'admin'@'%' ;
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
原文地址:https://www.cnblogs.com/daimaxuejia/p/12367461.html