sourcecode

UNIX 소켓 파일용 mysqld_safe 디렉토리 '/var/run/mysqld'가 없습니다.

copyscript 2022. 9. 17. 09:51
반응형

UNIX 소켓 파일용 mysqld_safe 디렉토리 '/var/run/mysqld'가 없습니다.

mysqld_safe를 사용하여 mysql 서버 5.7.17을 시작할 때 다음 오류가 발생합니다.

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

어떻게 고칠까요?

설치 시 이 디렉토리가 생성되지 않은 것이 이상합니다.my.cfg의 소켓파일 경로를 수동으로 변경했습니까?

이 디렉토리를 직접 작성하고 서비스를 재시작해 본 적이 있습니까?

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

코드를 사용했을 때mysqld_safe --skip-grant-tables &에러가 표시됩니다.

UNIX 소켓 파일용 mysqld_safe 디렉토리 '/var/run/mysqld'가 없습니다.

$ systemctl stop  mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &

해결했습니다.

$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld

지금은 같은 코드를 사용하고 있습니다.mysqld_safe --skip-grant-tables &취득하다

mysqld_safe /var/lib/mysql 데이터베이스를 사용하여 mysqld 데몬을 시작합니다.

사용하는 경우$ mysql -u root다음 정보를 얻을 수 있습니다.

서버 버전: 5.7.18-0ubuntu0.16.04.1 (우분투)

저작권(c) 2000, 2017, Oracle 및/또는 그 계열사.무단 전재 금지.

Oracle은 Oracle Corporation 및/또는 그 계열사의 등록 상표입니다.기타 이름은 해당 소유자의 상표입니다.

도움말을 보려면 'help;' 또는 '\h'를 입력하십시오.현재 입력문을 지우려면 '\c'를 입력하십시오.

mysql >

이제 암호를 변경해야 합니다.

mysql> use mysql
mysql> describe user;

테이블 및 열 이름을 완성하기 위한 테이블 정보 읽기 이 기능을 끄면 -A를 사용하여 더 빨리 시작할 수 있습니다.

데이터베이스가 변경되었습니다.

mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');

또는 어디에서나 접속할 수 있는mysql 루트계정이 있는 경우 다음 작업도 수행해야 합니다.

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

대체 방법:

   USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

모든 곳에서 액세스할 수 있는 루트 계정이 있는 경우:

 USE mysql
 UPDATE user SET Password = PASSWORD('newpwd')
 WHERE Host = '%' AND User = 'root';`enter code here

할 필요가 있다quitmysql 및 stop/start에서

FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

다시 'mysql -u root -p'를 사용하고 새로운 비밀번호를 사용하여

mysql >

Cent에서 일하세요OS:

$ service mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root mysql

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

$ service mysql restart

나한테도 일어났어.
메시지가 실제로는 올바르지 않습니다(또한 잘못된 영어:-).

문제가 되는 파일을 찾기 위해 다음 명령어(루트로)를 실행했습니다.
sh -x /etc/init.d/mysqld 시작

그리고 다음과 같은 내용이 인쇄되었습니다.

오류: 소켓 '/mysql-dir/mysql'을 통해 로컬 MySQL 서버에 연결할 수 없습니다.양말'
mysqld가 실행 중이고 소켓이 '/mysql-dir/mysql'인지 확인합니다.'sock'이 존재합니다!

소켓 파일이 미리 존재해야 할 것 같아서 다시 루트로 이 작업을 수행했습니다.

cd/cd/cd-module
터치 mysql.displ
chown mysql: mysql.sysql

그 후:
서비스 mysqld 시작

그리고 Voila!

다음 버그를 참조하십시오.https://bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823

거기에 임시방편이 있는 것 같다

Create a newfile /etc/tmpfiles.d/mysql.conf:

# systemd tmpfile settings for mysql
# See tmpfiles.d(5) for details

d /var/run/mysqld 0755 mysql mysql -

After reboot, mysql should start normally.

데이터베이스에 데이터가 없거나 해당 데이터를 복원할 다른 데이터가 있는 경우 다음을 시도할 수 있습니다.Ubuntu 서버 루트 패스워드는 알아야 하지만 mysql 루트 패스워드는 알아야 합니다.

이는 베스트 프랙티스이기 때문에 많은 사람들이 "mysql_secure_installation"을 설치했을 가능성이 높습니다.mysql_secure_installation이 존재하는 bin 디렉토리로 이동합니다.Ubuntu 시스템의 /bin 디렉토리에 있습니다.설치 관리자를 다시 실행하면 루트 데이터베이스 암호를 변경할지 묻는 메시지가 표시됩니다.

언급URL : https://stackoverflow.com/questions/42153059/mysqld-safe-directory-var-run-mysqld-for-unix-socket-file-dont-exists

반응형