MYSQL数据库学习(一)搭建环境,创建角色分配权限
备注:环境为MySQL Community Server 8.0.19版本
第一步:先到官网下载,这里我下载的是绿色版链接:https://dev.mysql.com/downloads/mysql/
第二步:打开刚刚解压的文件夹 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数据库的数据的存放目录,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-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.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)