官网文档
Steps for a Fresh Installation of MySQL
整理一下安装步骤
下载 APT 仓库源
MySQL APT Repository$ wget https://repo.mysql.com//mysql-apt-config_0.8.19-1_all.deb
加入到 apt 源
$ sudo dpkg -i mysql-apt-config_0.8.19-1_all.debSelecting 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.dmysql.list
开始安装
$ sudo apt-get update
$ sudo apt-get install mysql-server
注意过程中会弹出密码提示,
先设置一个简单的密码,例如:root@20210908安装结果
…
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) …安装后,服务已经启动
$ 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/mysqld9月 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
失败记录
开始我没有下载并设置 MySQL APT repository ,直接 sudo apt-get install mysql-server ,安装成功了!但是,死活找不到原始 root 密码
1). 按照以前的经验,这里也没有找到临时密码
$ grep ‘temporary password’ /var/log/mysqld.log2). 查找配置文件 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