Ubuntu16安装MySQL

Ubuntu16.04下使用以下命令即可进行MySQL的安装:

apt-get install mysql-server

上述命令会安装以下包: 
apparmor 
mysql-client-5.7 
mysql-common 
mysql-server 
mysql-server-5.7 
mysql-server-core-5.7 
因此无需再安装mysql-client等。安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了MySQL的。

  • 启动和关闭的MySQL服务器:
service mysql start
service mysql stop 

这里写图片描述

  • 确认是否启动成功: sudo netstat -tap | grep mysql

配置MySQL的允许远程访问:

1.首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:编辑配置文件就输入命令 

   sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

2.进入配置文件后

注释掉bind-address = 127.0.0.1:

在[mysqld]后添加skip-grant-tables(使用 set password for设置密码无效,且此后登录无需键入密码,在设置完密码后需要去掉,修改登录密码:update mysql.user set authentication_string=password("your_password") where user = 'root' and host='localhost';)

3.开启远程连接数据库服务开始授权客户端连接,非超级管理员用户启动需要加sudo否则会报错

mysql -u root -p密码

4.回车后开始授权:

use mysql;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程连接密码' WITH GRANT OPTION;

或者 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

flush privileges;

冲洗特权;

如果是mysql8.0

会报错: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 '密码' with grant option' at line 1

需要分两步:

创建用户:

 create user '用户'@'%' identified by '密码';

授权:

GRANT ALL PRIVILEGES ON *.* TO '用户'@'%' WITH GRANT OPTION;

报错:1251 - Client does not support authentication protocol reuqested by server;consider upgrading MySQL client

需要重置密码:

ALTER USER '用户'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 

5.回车之后继续输入刷新配置命名

最新数据库版本会报以下错误:

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 '123456' with grant option' at line 1

原因:

新版的的 mysql 已经将创建账户和赋予权限的方式分开了,原来的一条 sql 需要拆分成创建用户和授予权限两条。

解决办法:

创建用户:

create user '用户名'@'访问主机' identified by '密码';

修改权限:

grant 权限列表 on 数据库 to '用户名'@'访问主机'; (修改权限时在后面加 with grant option)

grant all privileges on *.* to '用户名'@'%';

重复修改权出现的问题:

ERROR 1062 (23000): Duplicate entry '%-root' for key 'user.PRIMARY'
原因:有多个root用户

解决办法:

先删除多余的,或者重新增加用户

需要报下面的错需要修改用户密码:

1251-client does not support authentication protocol requested by server

在这里插入图片描述

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'; #更新一下用户的密码 root用户密码为newpassword

6.退出mysql的服务

quit;

然后输入退出命令退出mysql的服务

7.执行如下命令重启MySQL的:

service mysql restart

8.远程连接OK!

安装产生的问题、

Ubuntu16安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码

mysql默认密码为空

但是使用mysql -uroot -p 命令连接mysql时,报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' 

此时修改root的默认密码即可

1.进入到etc/mysql 目录下,查看debian.cnf文件

2.找到用户名,密码 ,使用此账号登录mysql

用户名:debian-sys-maint

密码:xedvSNKdLavjuEWV

登录:mysql -udebian-sys-maint -pxedvSNKdLavjuEWV

3.修改root用户的的密码

这里是关键点,由于mysql5.7没有password字段,密码存储在authentication_string字段中,password()方法还能用

在mysql中执行下面语句修改密码

show databases;

use mysql;

update user set authentication_string=PASSWORD("自定义密码") where user='root';

update user set plugin="mysql_native_password";

flush privileges;

quit;

4.修改完密码,需要重启mysql

/etc/init.d/mysql restart;

就ok了

------------------------------------------------------------------------------------------------------------------------------------------

我卸载了很多遍mysql,重新装还是不提示输入密码,用这个方法解决了问题

附上卸载和安装mysql的步骤吧

安装:

# 安装的时候会提示要设置root密码,如果你没有在卸载的时候去清理残留数据是不会提示你去设置root密码的 ,我的就没提示,可以用上面的方法修改密码

sudo apt-get install mysql-client mysql-server

#检查mysql是不是在运行

sudo service mysql status

#一般安装完成之后都是会自动运行的,如果没有运行可以start

卸载:

sudo service mysql start

sudo apt purge mysql-*

sudo rm -rf /etc/mysql/ /var/lib/mysql

sudo apt autoremove