ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]

Ubuntu在20.04版本中,源仓库中MySQL的默认版本已经更新到8.0。因此可以直接安装。

安装MySQL

sudo apt-get update #更新源

sudo apt-get install mysql-server #安装

1

2

验证

安装完成后,可以通过下面的命令来查看时候安装成功:

systemctl status mysql

1

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第1张图片看到上面的信息就说明MySQL已经安装好并运行起来了。

登陆MySQL

以root用户登陆

sudo mysql -u root -p # -u 指定用户名 -p需要输入密码

1

或者:

sudo mysql #可以不需要指定用户名密码

1

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第2张图片已经成功连接到数据库服务器了。那接下来我们看看这里都有哪些databases.

mysql>show databases;

1

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第3张图片

MySQL安装好后有默认的这几个数据库。其中mysql里有user表,这个表里放了user、host相关的一些信息。通过下面的命令看到这个表。

mysql> show tables from mysql;

+---------------------------+

| Tables_in_mysql |

+---------------------------+

| columns_priv |

| component |

| db |

| default_roles |

| engine_cost |

| func |

| general_log |

| global_grants |

| gtid_executed |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| innodb_index_stats |

| innodb_table_stats |

| password_history |

| plugin |

| procs_priv |

| proxies_priv |

| role_edges |

| server_cost |

| servers |

| slave_master_info |

| slave_relay_log_info |

| slave_worker_info |

| slow_log |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---------------------------+

33 rows in set (0.00 sec)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

mysql> select User, Host from mysql.user;

+------------------+-----------+

| User | Host |

+------------------+-----------+

| debian-sys-maint | localhost |

| mysql.infoschema | localhost |

| mysql.session | localhost |

| mysql.sys | localhost |

| root | localhost |

+------------------+-----------+

5 rows in set (0.00 sec)

1

2

3

4

5

6

7

8

9

10

11

这里root就是我们刚才连接的账户。debian-sys-maint账号是在安装MySQL自动产生的,可以通过下面的命令查看到它。

sudo cat /etc/mysql/debian.cnf

1

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第4张图片

创建db

mysql> create database db_test;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| db_test |

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

此时数据库里还没有任何表:

mysql> use db_test;

Database changed

mysql> show tables;

Empty set (0.00 sec)

1

2

3

4

我们需要创建一个表(t_test):

mysql> create table t_test (id int, name varchar(20));

Query OK, 0 rows affected (0.08 sec)

1

2

插入数据:

mysql> insert into t_test(id, name) values(1, "A");

1

解决workbench连接的问题

发现没有权限:

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第5张图片MySQL8.0的版本更改了root账户的授权方式,默认是auth_socket。也就是说需要通过 Unix socket 文件来验证所有连接到localhost的用户,不能使用提供密码的方式了。我们需要通过下面的指令更一下授权方式。

ALTER USER [email protected] IDENTIFIED WITH mysql_native_password BT ‘root的密码‘;

Query OK, 0 rows affected (0.01 sec)

1

2

然后再使用workbench重新Test Connection,连接正常。

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第6张图片

ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证]_第7张图片

对workbench不能使用root访问数据库的问题,上面的方案是修改root的默认授权方式。

有网友讲还可以使用另外一个方案来解决:

先创建另外一个账户(如admin),

mysql> create user [email protected] identified by ‘admin‘; # 创建admin

1

给予这个账户(admin)最大的权限,然后workbench就可以使用admin账户访问数据库了。

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY ‘admin‘

1

经验证, GRANT特性MySQL8.0之前的版本里有的,MySQL8.0版本已不再支持,不能再使用GRANT来提升权限了。

因此只能使用前面介绍的更改默认授权方式了。

小结

至此,已经可以在ubuntu上正常使用mysql 8.0版本了。mysql 8.0更改了默认的授权方式,移除了grant权限特性。对其它方面的改进需进一步挖掘。

好记性不如烂笔头,写此博文只为备忘。如能帮到有需要的小伙伴,那将是我的荣幸。

另附一些mysql常用操作。

常用操作

sudo service mysql start # 启动mysql service

1

如何新增用户

CREATE USER [email protected] IDENTIFIED BY ‘你要设置的密码‘;

1

对新增的用户更改加密方式和密码

ALTER USER [email protected] IDENTIFIED WITH mysql_native_password BY ‘admin‘;

1

卸载MySQL

sudo rm /var/lib/mysql/ -R

sudo rm /etc/mysql/ -R

sudo apt-get autoremove mysql* --purge

1

2

3

参考

https://www.mysql.com/why-mysql/white-papers/whats-new-mysql-8-0/

https://forum.ubuntu.org.cn/viewtopic.php?t=491034

https://www.jianshu.com/p/39a2b636b40a

https://blog.csdn.net/king921004/article/details/106184909/

https://blog.csdn.net/yunyexiangfeng/article/details/82876964?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

原文:https://www.cnblogs.com/Areas/p/13439058.html

你可能感兴趣的:(ubuntu20安装mysql8_在Ubuntu20.04上安装MySQL8.0及正确配置[已验证])