ubuntu 安装、卸载重装mysql 8.0

官网文档
Steps for a Fresh Installation of MySQL

整理一下安装步骤

  1. 下载 APT 仓库源
    MySQL APT Repository

    $ wget https://repo.mysql.com//mysql-apt-config_0.8.19-1_all.deb

  2. 加入到 apt 源
    $ sudo dpkg -i mysql-apt-config_0.8.19-1_all.deb

    Selecting previously unselected package mysql-apt-config.
    (Reading database … 185524 files and directories currently installed.)
    Preparing to unpack mysql-apt-config_0.8.19-1_all.deb …
    Unpacking mysql-apt-config (0.8.19-1) …
    Setting up mysql-apt-config (0.8.19-1) …
    Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package mysql-apt-config)
    OK

    查看确认一下
    $ ls /etc/apt/sources.list.d

     mysql.list  
    
  3. 开始安装

    $ sudo apt-get update

    $ sudo apt-get install mysql-server

    注意过程中会弹出密码提示
    先设置一个简单的密码,例如:root@20210908
    在这里插入图片描述

  4. 安装结果


    done!
    update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
    Setting up mysql-community-client (8.0.26-1ubuntu20.04) …
    Setting up mysql-client (8.0.26-1ubuntu20.04) …
    Setting up mysql-community-server (8.0.26-1ubuntu20.04) …
    update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
    Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
    Setting up mysql-server (8.0.26-1ubuntu20.04) …
    Processing triggers for man-db (2.9.1-1) …
    Processing triggers for libc-bin (2.31-0ubuntu9) …

  5. 安装后,服务已经启动

    $ systemctl status mysql

    ● mysql.service - MySQL Community Server
    Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
    Active: active (running) since Wed 2021-09-08 15:55:49 CST; 54s ago
    Docs: man:mysqld(8)
    http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 28028 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Main PID: 28067 (mysqld)
    Status: “Server is operational”
    Tasks: 38 (limit: 9482)
    Memory: 351.7M
    CGroup: /system.slice/mysql.service
    └─28067 /usr/sbin/mysqld

    9月 08 15:55:48 dhbm-VirtualBox systemd[1]: Starting MySQL Community Server…
    9月 08 15:55:49 dhbm-VirtualBox systemd[1]: Started MySQL Community Server.

简单测试一下

$ mysql -uroot -p

mysql> status

--------------
mysql  Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:		9
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		8.0.26 MySQL Community Server - GPL
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/var/run/mysqld/mysqld.sock
Binary data as:		Hexadecimal
Uptime:			9 min 17 sec

Threads: 2  Questions: 51  Slow queries: 0  Opens: 176  Flush tables: 3  Open tables: 95  Queries per second avg: 0.091
--------------

mysql> select version();

+-----------+
| version() |
+-----------+
| 8.0.26    |
+-----------+
1 row in set (0.00 sec)

mysql> show databases;

mysql> use mysql;

mysql> show tables;

mysql> create database test;

mysql> use test;

mysql> CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, money double DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

mysql> INSERT INTO account VALUES (‘1’, ‘aaa’, ‘1000’);
mysql> INSERT INTO account VALUES (‘2’, ‘bbb’, ‘1000’);
mysql> INSERT INTO account VALUES (‘3’, ‘ccc’, ‘1000’);

mysql> select * from account;

只能本地访问

错误提示
$ mysql -h 114.XXX.XXX.XXX -u root -P 3306 -p

Enter password: 
ERROR 1130 (HY000): Host '106.3.XXX.XXX' is not allowed to connect to this MySQL server

本地 $ mysql -uroot -p 后

mysql> use mysql

mysql> select user,host from user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

mysql> update user set host = ‘%’ where user = ‘root’;

Query OK, 1 row affected (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user,host from user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

重启服务
service mysql restart

失败记录

  1. 开始我没有下载并设置 MySQL APT repository ,直接 sudo apt-get install mysql-server ,安装成功了!但是,死活找不到原始 root 密码

    1). 按照以前的经验,这里也没有找到临时密码
    $ grep ‘temporary password’ /var/log/mysqld.log

    2). 查找配置文件 my.cnf
    $ mysql --help |grep my.cnf
    order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

    打开看不到什么有用的内容,其实是空的!

    3). 按照网上文章初始化密码
    $ mysqld --initialize --user=mysql --console
    直接返回!没有网上文章所写的返回

    4). 按照官网,这是重新初始化 Data 目录
    3.1 Initializing the Data Directory

卸载重装

要么 skip-grant-tables 去重设密码,要么卸载重装
我选择卸载重装,反正也是学习!
简单记录一下卸载过程

$ dpkg --list|grep mysql

	ii  libmysqlclient21:amd64                     8.0.26-0ubuntu0.20.04.2             amd64        MySQL database client library
	ii  mysql-client-8.0                           8.0.26-0ubuntu0.20.04.2             amd64        MySQL database client binaries
	ii  mysql-client-core-8.0                      8.0.26-0ubuntu0.20.04.2             amd64        MySQL database core client binaries
	ii  mysql-common                               5.8+1.0.5ubuntu2                    all          MySQL database common files, e.g. /etc/mysql/my.cnf
	ii  mysql-server                               8.0.26-0ubuntu0.20.04.2             all          MySQL database server (metapackage depending on the latest version)
	ii  mysql-server-8.0                           8.0.26-0ubuntu0.20.04.2             amd64        MySQL database server binaries and system database setup
	ii  mysql-server-core-8.0                      8.0.26-0ubuntu0.20.04.2             amd64        MySQL database server binaries

逐条 remove
sudo apt-get autoremove --purge libmysqlclient21:amd64
sudo apt-get autoremove --purge mysql-client-8.0
sudo apt-get autoremove --purge mysql-client-core-8.0
sudo apt-get autoremove --purge mysql-common
sudo apt-get autoremove --purge mysql-server
sudo apt-get autoremove --purge mysql-server-8.0
sudo apt-get autoremove --purge mysql-server-core-8.0

清除残留
 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

删除数据
sudo rm -rf /etc/mysql/  /var/lib/mysql

版权声明:本文为u010953609原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。