Ubuntu-18.04下安装mysql

安装mysql服务器

1、 sudo apt-get install mysql-server 

2、 sudo apt-get install mysql-client 

登录问题

安装成功后,我们会发现我们没有登录的权限。

hhz@hhz-virtual-machine:~$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

然后发现当我们输入 sudo mysql -u root -p 这个命令的时候可以登录(提示输入密码时直接回车即可),显然这不是我们想要的。

那怎么解决这个问题呢?

解决方案:删除root用户,然后重新创建

1、我们先登录:

hhz@hhz-virtual-machine:~$ sudo mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

2、然后查看用户:

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

3、删除root帐号

mysql> drop user 'root'@'localhost';
Query OK, 0 rows affected (0.00 sec)

4、重新创建一个root帐号

mysql> create user 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

5、接下来我们用 quit; 命令来退出mysql,然后试试用新的帐号登录

hhz@hhz-virtual-machine:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

ok,登录问题已经完美解决

远程访问问题

1、授权

mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

2、用 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 打开这个文件,然后将 bind-address = 127.0.0.1 改成 bind-address = 0.0.0.0 允许任何IP地址访问,如果设置多个请用逗号隔开

3、重启服务: service mysql restart 

4、接下来我们在windows下用Navicat来连接试试

原文地址:https://www.cnblogs.com/hhzblogs/p/9729498.html