먼저 Ask Ubuntu에서이 문제에 대한 모든 질문을 읽었으며 공식 문서의 모든 단계를 수행했음을 분명히하겠습니다.
우분투 16.04.1 LTS를 사용하고 있습니다
누군가가 이미 시도한 것을 제안하기 전에 내가 한 일을 보여줄 것입니다.
root@localhost:/# sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
MySQL이 올바르게 중지되었습니다.
root@localhost:/# sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 3316
root@localhost:/#
여기서 이것이 작동하는지 여부를 알 수 없으므로 어쨌든 단계를 따릅니다.
root@localhost:/# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@localhost:/#
서비스가 시작되지 않아 작동하지 않는 것 같습니다. 다음 단계를 계속할 수 없으므로 다른 방법을 시도하십시오 (퍼지).
사용한 후 :
sudo apt-get --purge remove
sudo apt-get install
다음 단계를 시도하십시오.
root@localhost:/# mysqladmin -u root password MyNewPassword
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
root@localhost:/#
이것도 작동하지 않기 때문에 mysql 웹에서 언급 한 다른 방법을 시도했습니다.
그래서 거기에서 지적한대로 mysql 프로세스를 종료 한 다음 사용합니다.
root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
[1] 5267
root@localhost:/# 2017-02-01T12:47:49.250083Z mysqld_safe Logging to syslog.
2017-02-01T12:47:49.252427Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T12:47:49.254765Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T12:47:49.257045Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+ Salida 1 mysqld_safe --init-file=/home/me/mysql-init
root@localhost:/#
지금은 옵션에서 벗어날 때이므로 Ask Ubuntu에 여기에 언급 된 다른 방법을 시도하십시오.
root@localhost:/# sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.17, use --force if you still need to run mysql_upgrade
root@localhost:/#
그리고 지금 나는 선택의 여지가 없으므로 어떤 제안이라도 환영합니다.
답변
나는 같은 문제가 있었고이 줄을 실행하여 해결했습니다.
$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
이 줄을 실행하기 전에 :
root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
나 에게이 단계 는 더 잘 작동했습니다.
이 작업을 수행하는 더 깨끗한 방법이 있다고 생각하지만 빠르고 효율적인 해결 방법이었습니다.
답변
내가 시도한 것에 상관없이 mysql을 다시 설치할 수 없었기 때문에 비밀번호를 재설정하고 재설정해야했습니다.
우분투 16.04.1 LTS 에서이 길을 가야했습니다. 나는 시간을 보냈다 이상의 SO뿐만 아니라 AskUbuntu Q & A의, 나는 마침내 함께 일하고있어에 모든 것을 MySQL의 웹 사이트에서 다른 모든 제안을 시도 :
참고 : 이 루트 사용자에 대한 암호를 입력 보였다, 나는 원래 암호가 didnt는 I 있도록 새 비밀번호와 동일한 비밀번호를 입력했습니다.
참고 : 이 더 /var/log/mysqld.log이 없었다에만 /var/log/mysql/error.log
또한이 나를 위해 작동하지 않았다주의 :
sudo dpkg-reconfigure mysql-server-5.7
아니다 않았다
sudo dpkg-reconfigure --force mysql-server-5.5
만들기 MySQL의 서비스 디렉토리.
sudo mkdir /var/run/mysqld
MySQL 사용자에게 서비스 디렉토리에 쓸 수있는 권한을 부여하십시오.
sudo chown mysql: /var/run/mysqld
그때:
- 현재 mysqld pid를 죽인다
- sudo / usr / sbin / mysqld &로 mysqld를 실행하십시오.
-
/ usr / bin / mysql_secure_installation을 실행하십시오. mysql_secure_installation의
출력
root @ my 서버 : ~ # / usr / bin / mysql_secure_installation
MySQL 서버 배포 보안
사용자 루트의 비밀번호를 입력하십시오.
VALIDATE PASSWORD PLUGIN을 사용하여 비밀번호를 테스트하고 보안을 향상시킬 수 있습니다. 암호의 강도를 확인하고 사용자는 충분히 안전한 암호 만 설정할 수 있습니다. VALIDATE PASSWORD 플러그인을 설정 하시겠습니까?
y의 경우 y | Y를 누르고, 아니오의 다른 키를 : no 기존 암호를 루트로 사용하십시오. root의 비밀번호를 변경 하시겠습니까? ((예 : y | Y, 예 : 다른 키) : y
새 비밀번호:
새 비밀번호 재 입력 : 기본적으로 MySQL 설치에는 익명의 사용자가 있으므로 누구나 사용자 계정을 만들지 않고도 MySQL에 로그인 할 수 있습니다. 이것은 테스트 용이며 설치를 좀 더 부드럽게하기위한 것입니다. 프로덕션 환경으로 이동하기 전에 제거해야합니다.
익명 사용자를 제거 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.
일반적으로 root는 ‘localhost’에서만 연결할 수 있어야합니다. 이렇게하면 누군가 네트워크에서 루트 암호를 추측 할 수 없습니다.
원격으로 루트 로그인을 허용하지 않습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.
기본적으로 MySQL에는 누구나 액세스 할 수있는 ‘test’라는 데이터베이스가 제공됩니다. 이것은 테스트 용으로 만 사용되며 프로덕션 환경으로 이동하기 전에 제거해야합니다.
테스트 데이터베이스를 제거하고 액세스 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y
-
테스트 데이터베이스를 삭제하는 중 … 성공
-
테스트 데이터베이스에서 권한을 제거하는 중 … 성공.
권한 테이블을 다시로드하면 지금까지의 모든 변경 사항이 즉시 적용됩니다.
지금 권한 테이블을 다시로드 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.
다 했어요!
-
답변
나는 같은 문제가 있었고 그것을 해결했다.
# /etc/init.d/mysql stop
# service mysql stop
# mkdir -p /var/run/mysqld
# chown mysql:mysql /var/run/mysqld
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=password('1234') where user='root';
(여기서 authentication_string
비밀번호 필드를 보유합니다.)