ฉันได้รับเครื่อง Ubuntu ที่ติดตั้ง mysql แล้ว และฉันไม่รู้ว่าจะทำอย่างไร ปัญหาของฉันคือฉันไม่สามารถเข้าถึง mysql ได้

นี่คือข้อมูลบางส่วนของโฮสต์ของฉัน:

cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

เวอร์ชัน MySQl mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

นี่คือข้อความแสดงข้อผิดพลาด:

$ mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

---

$ service mysqld start
Failed to start mysqld.service: Unit mysqld.service not found.

ไม่มี ไฟล์/var/run/mysqld/mysqld.sockนี้

แก้ไขด้วยข้อมูลเพิ่มเติม

$ netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      99/systemd-resolved
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      136/sshd: /usr/sbin
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      303/master
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      313/sshd: [email protected]/
tcp6       0      0 :::80                   :::*                    LISTEN      138/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      136/sshd: /usr/sbin
tcp6       0      0 ::1:25                  :::*                    LISTEN      303/master
tcp6       0      0 ::1:6010                :::*                    LISTEN      313/sshd: [email protected]/
$ systemctl start mysql
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.
$ systemctl status mysql.service
* mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2022-01-27 08:32:50 CET; 10s ago
    Process: 5687 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 5696 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
   Main PID: 5696 (code=exited, status=1/FAILURE)
     Status: "Server startup in progress"
      Error: 2 (No such file or directory)

Jan 27 08:32:50 osticket systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Jan 27 08:32:50 osticket systemd[1]: mysql.service: Failed with result 'exit-code'.
Jan 27 08:32:50 osticket systemd[1]: Failed to start MySQL Community Server.
Jan 27 08:32:50 osticket systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
Jan 27 08:32:50 osticket systemd[1]: Stopped MySQL Community Server.
Jan 27 08:32:50 osticket systemd[1]: mysql.service: Start request repeated too quickly.
Jan 27 08:32:50 osticket systemd[1]: mysql.service: Failed with result 'exit-code'.
Jan 27 08:32:50 osticket systemd[1]: Failed to start MySQL Community Server.
$ pwd && ls
/var/log
alternatives.log       apache2        auth.log.4.gz  dpkg.log.1     lastlog        mysqld.err            php7.4-fpm.log.2.gz  php7.4-fpm.log.8.gz  syslog.3.gz           wtmp
alternatives.log.1     apt            btmp           dpkg.log.2.gz  mail.log       php7.4-fpm.log        php7.4-fpm.log.3.gz  php7.4-fpm.log.9.gz  syslog.4.gz           wtmp.1
alternatives.log.2.gz  auth.log       btmp.1         dpkg.log.3.gz  mail.log.1     php7.4-fpm.log.1      php7.4-fpm.log.4.gz  private              syslog.5.gz
alternatives.log.3.gz  auth.log.1     dist-upgrade   dpkg.log.4.gz  mail.log.2.gz  php7.4-fpm.log.10.gz  php7.4-fpm.log.5.gz  syslog               syslog.6.gz
alternatives.log.4.gz  auth.log.2.gz  dmesg          faillog        mail.log.3.gz  php7.4-fpm.log.11.gz  php7.4-fpm.log.6.gz  syslog.1             syslog.7.gz
alternatives.log.5.gz  auth.log.3.gz  dpkg.log       journal        mail.log.4.gz  php7.4-fpm.log.12.gz  php7.4-fpm.log.7.gz  syslog.2.gz          ubuntu-advantage.log
$ cat /var/log/mysqld.err
2022-01-26T12:23:07.952718Z 0 [ERROR] [MY-010083] [Server] --verbose is for use with --help; did you mean --log-error-verbosity?
2022-01-26T12:23:07.952814Z 0 [ERROR] [MY-010095] [Server] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files
2022-01-26T12:23:07.953735Z 0 [ERROR] [MY-010119] [Server] Aborting
$ namei -l /var/lib/mysql-files
f: /var/lib/mysql-files
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root lib
                     mysql-files - No such file or directory

ฉันพยายามแก้ไขหลายวิธีแล้วแต่ทำไม่ได้ ใครก็ได้ช่วยฉันที

ขอบคุณ.

answer

netstat -tlpn- mysqlทำงานบนพอร์ต 3306 หรือไม่? หรือที่อื่น? โดยค่าเริ่มต้นการเชื่อมต่อกับ localhost นั้นผ่านซ็อกเก็ตลองเพิ่ม--protocol 3306- ดูวิธีบังคับให้ MySQL เชื่อมต่อโดย TCP แทนที่จะเป็นซ็อกเก็ต Unix - ps ax | grep mysqlจากนั้นlsof -p <mysqld pid>ค้นหา IPv4 หรือ IPv6 หรือซ็อกเก็ต - ซ็อกเก็ตอาจถูกวางไว้ในตำแหน่งอื่นนอกเหนือจากที่ลูกค้าคาดหวัง

ชื่อบริการอยู่mysqlใน Debian / Ubuntu ดังนั้นคุณต้องใช้systemctl start mysqlเพื่อเริ่มเซิร์ฟเวอร์

mysqld ของคุณไม่เริ่มทำงานและระบุข้อผิดพลาดต่อไปนี้ในบันทึกข้อผิดพลาด:

Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files

/var/lib/mysql-files หายไป คุณต้องสร้างมันขึ้นมา

sudo install -o mysql -g mysql -m 0700 -d /var/lib/mysql-files

หลังจากนั้นคุณควรจะสามารถเริ่ม mysqld โดยใช้systemctl start mysql.