【Linux-Ubuntu系列】Ubuntu安装并连接MySQL踩过的坑

Ubuntu安装并连接MySQL踩过的坑

本人的Ubuntu是用的Windows10下的Linux子系统,为了方便本地开发使用,个人觉得本地开发轻量级的用起来很舒服。所以MySQL数据库也就安装在Linux子系统上了,当然免不了会入坑。为了后学者少入坑,总结了下我的入坑及出坑历程。

1.Win10上安装Linux Ubuntu子系统

请参考我的另一篇博文:Windows上安装Ubuntu

2.Ubuntu上安装MySQL

2.1 卸载安装失败的MySQL数据库

sudo apt-get remove mysql-server

sudo apt-get autoremove mysql-server

sudo apt-get remove remove mysql-common

// 清理MySQL
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

2.2 安装MySQL

// 这一步没有提示输入用户名和没密码,小坑在这就埋下了,记得之前有可以输入用户名和密码的安装包的但是给忘了?
sudo apt-get install mysql-server

sudo apt-get intsall mysql-client

sudo apt-get install libmysqlclient-dev

// 查看服务是否安装了,Shell遵循无提示即无错误
sudo netstat -tap | grep mysql

2.3 修改配置文件

sudo vi /etc/mysql/mysql/mysql.conf.d
将bind-address=127.0.0.1 修改为 bind-address = 0.0.0.0【主要多人操作时的限制】

//启动服务:
sudo /etc/init.d/mysql start

//重启服务
sudo /etc/init.d/mysql restart

2.4 命令交互式操作数据库

// 一定得加sudo,不然在登录的时候会提示没有权限
$ sudo mysql -u root -p
Enter password: 

// 然后直接就按Enter键就行了,因为在安装mysql-server的时候没有设置用户名和密码;虽然也可以操作数据库但是操作起来非常的不方便。

// 如果要在数据库工具如Navicate去连接的话就尴尬了会报错,以下是报错内容
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

// 那么问题来了,该怎么解决呢?

2.5 修改数据库配置用工具连接

// 登录数据库
$ sudo mysql -u root -p
mysql> USE mysql;
mysql> SELECT user, plugin FROM mysql.user;
-- 查询结果
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| root             | mauth_socket          |
| mysql.session    | mysql_native_password |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
| root             | mysql_native_password |
+------------------+-----------------------+
5 rows in set (0.00 sec)
-- 结果发现root的plugin='auth_socket'并不是本地密码,因此需要修改它

-- 修改root账户的密码和plugin的本地密码验证方式
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123'), plugin='mysql_native_password' WHERE user='root';

-- 刷新
mysql> FLUSH PRIVILEGES;

-- 退出
mysql> exit;

-- 用再次登录的时候就输入用户名密码就可以登录成功了

2.6 注意:高版本的MySQL存在简单密码无法设置成功的安全限制,但是可以修改限制

mysql> SET GLOBAL validate_password_policy=0;
mysql> SET GLOBAL validate_password_mixed_case_count=0;
mysql> SET GLOBAL validate_password_number_count=3;
mysql> SET GLOBAL validate_password_special_char_count=0;
mysql> SET GLOBAL validate_password_length=3;
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123'), plugin='mysql_native_password' WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
-- 然后再登录即可。

踩过的坑,希望你们不要再踩了!文章中的一些方法集百家之长和自己的一些实际操作,文章中可能存在的一些疏忽,欢迎指正留言,谢谢!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值