翼度科技»论坛 编程开发 mysql 查看内容

Ubuntu安装MySQL的三种方式以及卸载MySQL

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
注意:我所有操作一开始就执行了:sudo su (进入特权模式,后续命令就不需要在用sudo提权了)

一.卸载MySQL

看个人习惯,我基本用的是第一种,简单粗暴
  1. 删除mysql的数据文件
  2. sudo rm /var/lib/MySQL/ -R

  3. 删除mysql的配置文件
  4. sudo rm /etc/mysql/ -R

  5. 自动卸载mysql(包括server和client)
  6. sudo apt-get autoremove mysql* --purge
  7. sudo apt-get remove apparmor

  8. 检查是否卸载干净
  9. dpkg -l | grep mysql# 若没有返回,说明已完成卸载
复制代码
  1. dpkg --list|grep mysql  #首先在终端中查看MySQL的依赖项
  2. sudo apt-get remove mysql-common #卸载
  3. sudo apt-get autoremove --purge mysql-server-8.0 #卸载,看你自己安装的什么版本在卸载
  4. dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P  #清除残留数据
  5. dpkg --list|grep mysql   #再次查看MySQL的剩余依赖项,基本到这就干净了
  6. sudo apt-get autoremove --purge mysql-apt-config  #如果有的话继续删除剩余依赖项
复制代码

dpkg -l 命令会列出系统中所有已安装的软件包信息。结合grep,可以过滤出自己想要的内容。

输出第一列

一般为两个字母,分别代表(期望状态和当前状态)最常见的就是上图中的
  1. ii
复制代码
期望状态标识:

  • 未知
    1. (u)
    复制代码
  • 安装
    1. (i)
    复制代码
  • 删除
    1. (r)
    复制代码
  • 清除
    1. (p)
    复制代码
  • 保持
    1. (h)
    复制代码
当前状态标识:

  • 未安装(n)
  • 已安装(i)
  • 仅存配置(c)
  • 仅解压缩(U)
  • 配置失败(F)
  • 不完全安装(H)
  • 触发器等待(W)
  • 触发器未决(T)
错误标识:


  • 需重装(R)
一般我们系统中最常见的就是ii(期望安装,并且已正常安装)。
还有一种比较常见的是rc(期望卸载,目前仅仅保留了一些配置信息)。
系统中所有的安装的包的内容都被记录在:
  1. /var/lib/dpkg/status
复制代码
,dpkg -l 命令就是读取的这个文件中的内容进行显示。


二.直接安装
  1. sudo apt update && sudo apt upgrade
  2. sudo su #进入特权模式,使用的是root权限,这样后续执行命令就不需要sudo
  3. apt install -y mysql-server #安装的是最新版本,比如MySQL8.0的
  4. mysql -V  #查看版本
  5. mysql -uroot  #这种安装方式前期没有设置密码,直接登录
复制代码
1.密码查询及更改2
若安装过程未设置密码或者设置了密码然后使用过程中忘记密码了,可以通过以下方式查询、修改密码
  1. cat /etc/mysql/debian.cnf
复制代码


在没有改密码之前用mysql -uroot 和这个获取用户密码登录都可以
2.修改密码
  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
复制代码


三.安装指定版本


选择tar压缩包,选择bundle版本(带部分依赖,比较全)
警告:注意安装顺序

1.安装mysql-community-client相关
  1. dpkg -i mysql-common_8.0.20-2ubuntu20.04_amd64.deb
  2. dpkg -i mysql-community-client-core_8.0.20-2ubuntu20.04_amd64.deb
  3. dpkg -i mysql-community-client_8.0.20-2ubuntu20.04_amd64.deb
复制代码
2.安装mysql-community-server-core
  1. dpkg -i mysql-community-server-core_8.0.20-2ubuntu20.04_amd64.deb #这里应该会报错,缺少依赖,缺啥补啥
  2. apt install -y libmecab2  #安装依赖,这里是我缺的依赖
  3. dpkg -i mysql-community-server-core_8.0.20-2ubuntu20.04_amd64.deb
复制代码
  1. dpkg -i mysql-client_8.0.20-2ubuntu20.04_amd64.deb
  2. dpkg -i mysql-community-server_8.0.20-2ubuntu20.04_amd64.deb
复制代码
安装这二个的时候就会弹出设置密码,自己定义就好
  1. mysql -V
  2. mysql -uroot -p123
复制代码
到这里基本就没有问题了

四.编译安装


这里有两个版本的代码,一个带有boost的,一个没有,我们选择下面那个带boost的,可以省很多事,不然还要自己下载boost安装
1.装包解压
  1. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
  2. tar -zxvf mysql-5.7.18.tar.gz
复制代码
2.安装依赖包
  1. apt install -y cmake bison libncurses5-dev build-essential
复制代码
3.编译安装
  1. cd mysql-5.7.18/
  2. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=boost
  3. make && make install
复制代码
4.添加用户组,和文件管理
  1. groupadd mysql
  2. useradd -g mysql mysql
  3. mkdir /usr/local/mysql/data
  4. chown -R mysql /usr/local/mysql
  5. chgrp -R mysql /usr/local/mysql
复制代码
五、初始化mysql

指定数据目录data位置 datadir
  1. /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
复制代码

这个会生成一个很随机的密码,要备份一下:我的是:(udyv%Tmv0#e

六、编辑简单配置文件
  1. vim /etc/my.cnf
  2. //添加下面的内容
  3. [client]
  4. socket = /tmp/mysql.sock

  5. [mysqld]
  6. port=3306
  7. socket = /tmp/mysql.sock
  8. basedir = /usr/local/mysql
  9. datadir = /usr/local/mysql/data
复制代码
如果怕3306端口已经被占用,也可以写3307啥的

七.启动MySQL

一般启动或暂停模式:support-files/mysql.server start (stop)
下面把启动放到service下,可以快捷启动
  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. chmod +x /etc/init.d/mysqld
  3. update-rc.d mysqld defaults
  4. service mysqld start
  5. service mysqld status #确定已经启动
复制代码
八.登录MySQL
  1. ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
  2. mysql -uroot -p'(udyv%Tmv0#e'

  3. //重新修改密码 为123456
  4. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  5. exit 退出
复制代码
修改一下my.cnf ,添加用户和密码
vim /etc/my.cnf

重新用新密码登陆


九、设置远程连接

#所有主机都可以连接
  1. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  2. mysql>flush privileges;
  3. exit
复制代码


总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/database/3285370rh.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具