SQL

Ubuntu MySQL安装、卸载以及远程连接

mysql卸载安装

Posted by shexiaobin on March 8, 2020

Ubuntu MySQL安装、卸载以及远程连接

1. 安装😃

  • 查看apt list中MySQL版本信息

apt list | grep mysql-server

image

  • 安装mysql
# 会提示让你输入密码(两次)
sudo apt-get install -y mysql-server
  • 操作MySQL服务
#启动
sudo service mysql start 
#停止
sudo service mysql stop
#重启
sudo service mysql restart

2. 卸载

  • dpkg --list|grep mysql 查看自己的mysql有哪些依赖

image

# 逐个卸载
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-5.7
#再用dpkg --list|grep mysql查看,还剩什么就卸载什么

#最后清楚残留数据:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

一定要卸载干净,不然重新安装会不成功

3. 远程连接

# 登录MySQL
mysql -uroot -p
show databases;
use mysql;
select host from user where user='root';
# Host设置为通配符%。
update user set host = '%' where user ='root';
  • 修改配置文件
sudo /etc/mysql/mysql.conf.d/mysqld.cnf
# 将bind_address=127.0.0.1注释掉.
# 并添加一行  
bind_address=0.0.0.0
# 然后重启服务
/etc/init.d/mysql restart

image

  • 修改配置文件设置数据写入格式utf-8

#打开配置文件
vi /et/mysql/my.cnf

​ 将下面的加入配置

[client]
default_character_set=utf8 
[mysql]
default_character_set=utf8 
[mysqld]
character_set_server=utf8

重启mysql,重启mysql,重启mysql

  • 确保防火墙允许 3306 端口开启
1. 开启防火墙 【PS:某些情况下 Ubuntu 可能默认的防火墙没有开启,这样的话就不用关心防火墙造成的影响,但是云服务器在生产环境下,我们为了安全通常是开启防火墙的,这时候我们需要知晓该如何配置】
`sudo ufw enable/disable` # 开启或者关闭防火墙 
# 更多操作大家可以使用 ufw --help 查看

# 添加允许规则
> sudo ufw allow 3306/tcp 
# 查看已添加规则
sudo ufw status

# debian 系列的防火墙软件为 ufw, Ubuntu 是基于 debian 的,Centos 属于红帽系列,防火墙软件不是 ufw,具体可以自行搜素哦

4. 无法登录:’root’@’localhost’

ubuntu下,ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: yes)的解决方案

1.命令行输入:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]后面任意一行添加 “skip-grant-tables” 用来跳过密码验证的过程

保存文档并退出 :wq

2.接下来我们需要重启MySQL:/etc/init.d/mysql restart

显示如下:

[....] Restarting mysql (via systemctl): mysql.serviceFailed to add /run/systemd/ask-password to directory watch: No space left on device
. ok 

3.重启之后输入 #mysql 即可进入mysql。

4.接下来就是用sql来修改root的密码

mysql> use mysql;
mysql>update mysql.user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
mysql> quit
# 此时root账户就已经重置成新的密码了。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 编辑mysqld.cnf,去掉刚才添加的内容,然后重启MySQL, 
/etc/init.d/mysql restart 大功告成!