mysql#002#apt安装指南

记录在Ubuntu22.04服务器上,使用apt安装mysql-server、mysql-client、mysql-dev开发库等组件的方法。

查看apt源里MySQL的软件包

使用命令查询源:

1
2
3
$ apt-cache search mysql-server
$ apt-cache search mysql-client
$ apt-cache search libmysqlclient-dev

安装mysql-server

使用命令:

1
$ sudo apt install mysql-server-8.0

安装开始:

安装完成:

mysql-server的登录密码

在本机使用命令登录msyql-server提示失败信息:

1
2
kevintian@dev:~$ mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

发现登录不上去,然后使用sudo登录,发现可以正常登录。登录之后再查看下mysql的用户表,发现plugin为auth_socket,非使用密码登录方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
kevintian@dev:~$ sudo mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.35-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select * from mysql.user where User='root'\G
*************************** 1. row ***************************
Host: localhost
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher: 0x
x509_issuer: 0x
x509_subject: 0x
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: auth_socket
authentication_string:
password_expired: N
password_last_changed: 2023-11-20 13:35:33
password_lifetime: NULL
account_locked: N
Create_role_priv: Y
Drop_role_priv: Y
Password_reuse_history: NULL
Password_reuse_time: NULL
Password_require_current: NULL
User_attributes: NULL
1 row in set (0.00 sec)

我们将root@localhost的登录方式改为密码登录,登录mysql服务器之后,使用如下命令:

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';

退出之后,我们再次使用非sudo命令登录mysql-server,提示我们输入密码,输入123456,现在可以正常进入msyql-server。


我们再将root用户的信息查询出来,和未修改密码之前的信息对比下,发现就是修改了“plugin”和“authentication_string”两个字段。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
mysql> select * from mysql.user where User='root'\G
*************************** 1. row ***************************
Host: localhost
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher: 0x
x509_issuer: 0x
x509_subject: 0x
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: caching_sha2_password
authentication_string: $A$005$&d>?`W<&#ea<yspWO.m/weh6D3aoPubMFNwON3H.6Ac6707ex60f99KeA
password_expired: N
password_last_changed: 2023-11-20 14:47:43
password_lifetime: NULL
account_locked: N
Create_role_priv: Y
Drop_role_priv: Y
Password_reuse_history: NULL
Password_reuse_time: NULL
Password_require_current: NULL
User_attributes: NULL
1 row in set (0.00 sec)

mysql-server的启停

使用如下命令查看当前MySQL的状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo systemctl status mysql
[sudo] password for kevintian:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-11-20 14:44:42 CST; 19min ago
Process: 4229 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 4237 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 23860)
Memory: 366.1M
CPU: 11.603s
CGroup: /system.slice/mysql.service
└─4237 /usr/sbin/mysqld

Nov 20 14:44:42 dev systemd[1]: Starting MySQL Community Server...
Nov 20 14:44:42 dev systemd[1]: Started MySQL Community Server.

使用如下命令启动MySQL:

1
$ sudo systemctl start mysql

使用如下命令停止MySQL:

1
$ sudo systemctl stop mysql

查看mysql-server的配置、日志、数据目录

使用如下命令,查看默认安装的文件和目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
kevintian@dev:~$ sudo dpkg -L mysql-server-8.0
/.
/etc
/etc/apparmor.d
/etc/apparmor.d/usr.sbin.mysqld
/etc/init
/etc/init/mysql.conf
/etc/init.d
/etc/init.d/mysql
/etc/logcheck
/etc/logcheck/ignore.d.paranoid
/etc/logcheck/ignore.d.paranoid/mysql-server-8_0
/etc/logcheck/ignore.d.server
/etc/logcheck/ignore.d.server/mysql-server-8_0
/etc/logcheck/ignore.d.workstation
/etc/logcheck/ignore.d.workstation/mysql-server-8_0
/etc/logrotate.d
/etc/logrotate.d/mysql-server
/etc/mysql
/etc/mysql/debian-start
/etc/mysql/mysql.cnf
/etc/mysql/mysql.conf.d
/etc/mysql/mysql.conf.d/mysql.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/mysql.service
/usr
/usr/share
/usr/share/apport
/usr/share/apport/package-hooks
/usr/share/apport/package-hooks/source_mysql-8.0.py
/usr/share/doc
/usr/share/doc/mysql-server-8.0
/usr/share/doc/mysql-server-8.0/README.Debian.gz
/usr/share/doc/mysql-server-8.0/copyright
/usr/share/doc/mysql-server-8.0/examples
/usr/share/doc/mysql-server-8.0/examples/daemon_example.ini
/usr/share/doc/mysql-server-8.0/mysqld.sym.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/mysql-server-8.0
/usr/share/mysql
/usr/share/mysql/debian_create_root_user.sql
/usr/share/mysql/docs
/usr/share/mysql/docs/INFO_BIN
/usr/share/mysql/docs/INFO_SRC
/usr/share/mysql/echo_stderr
/usr/share/mysql/install_rewriter.sql
/usr/share/mysql/mysql-systemd-start
/usr/share/mysql/mysqld_multi.server
/usr/share/mysql/uninstall_rewriter.sql
/var
/var/lib
/var/lib/mysql-upgrade

发现有关配置文件:

/etc/mysql
/etc/mysql/mysql.cnf
/etc/mysql/mysql.conf.d
/etc/mysql/mysql.conf.d/mysql.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf

查看配置文件可以找到日志文件和数据文件的目录(一般日志路径:/var/log/mysql/,数据路径:/var/lib/mysql/)。