最近在ubuntu20.04安装配置mysql 8.0.28 时遇到了一点小麻烦,而这些问题应该是高手不屑一顾,而新手又无从下手的,现在我把我的解决过程写下来,以备后用。
1.安装
apt install -y mysql-server
apt默认安装的是mysql 8.0.28
2.验证
查看mysql版本
mysql -V
开启mysql 8.0,查看mysql
的状态
# 启动mysql
systemctl start mysql
# 查看状态
systemctl status mysql
# 将mysql 加入自开机自启动
systemctl enable mysql
🎶 mysql 8.0 直接使用start mysql就可以了
如果上述命令都没有报错说明mysql已经安装成功了
3.使用
使用root
用户登录
mysql -u root -p
# 或者直接输入 mysql后回车
mysql
首次登录时密码为空,空密码当然不安全,所以一般安装mysql
后的第一件事就是添加非root
用户及用户密*码
查看mysql用户信息
select user,host, authentication_string from mysql.user;
创建root密-码
问题就出在这,mysql 8.0.28 root 密*码设置
和之前的版本有所不同了。
mysql> use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password_here';
mysql> flush privileges;
mysql> quit
注意关键字mysql_native_password
‘your_password_here’ :是你要给root
设置的新密*码。
再次登录输入新密*码就可以登录了。
添加新用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密*码登陆服务器
CREATE USER 'pig'@'%' IDENTIFIED BY 'tiger';
给新用户授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
**
- privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
usage
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
刷新授权
flush privileges;
查看用户的权限信息
show grants for 'pig'@'%'