MySQL에서 데이터베이스를 연결하고 만드는 방법은 무엇입니까?


17

MySQL을 설치하고 다음 코드를 사용하여 데이터베이스를 만들고 싶습니다.

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

두 번째 줄을 실행 한 후 다음 메시지가 나타납니다.

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

무엇이 문제입니까?


1
실제로이 두 명령을 사용한 경우 {username} (admin / root가 아닌 경우)에 데이터베이스에 액세스 할 수 있도록 PRIVILIGES를 부여한 위치는 무엇입니까?
Rinzwind

답변:


26

MySQL을 설치 한 후 mysql root password설정 해야 합니다 . 그렇게하려면 :

  1. 터미널에서 다음 명령을 입력하십시오.

    mysql -u root

  2. 이제 mysql 콘솔을 열어야합니다 . 그리고 다음 줄을 입력하십시오 :

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

mysql 콘솔 을 종료하려면을 입력하십시오 exit.

이제 루트 사용자로 데이터베이스작성 해야합니다 . 그렇게하려면 :

  1. 터미널에서 mysql 을 엽니 다 .

    mysql -u root -p

  2. 이전에 생성 한 비밀번호를 입력하십시오.

  3. 다음 줄을 입력하십시오 :

    CREATE DATABASE yourdatabasename;

입력 SHOW DATABASES;하면 목록에 표시됩니다. 그렇다면 데이터베이스를 사용할 준비가 된 것입니다!


mysql -u root제공ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul

이 오류는 이미 root사용자가 있고 비밀번호 가 있음을 의미 합니다. root암호 를 잊어 버렸다면 MySQL 문서를 읽으 십시오 .
Lucio

1

루트 사용자 및 관련 비밀번호를 사용하여 MySQL에 연결해야합니다. 설정해야 할 경우 다음 명령을 사용하십시오.sudo mysqladmin -u root -h localhost password 'mypassword'

여기에서이 문서에 따라 추가 계정을 구성 할 수 있습니다. MySQL에서 새 사용자를 작성하고 권한을 부여하는 방법


1
를 복사하여 sudo mysqladmin -u root -h localhost password 'mypassword'터미널에 붙여 넣으면 메시지가 나타납니다 Access denied for user 'root'@'localhost' (using password: NO).
user543489

@Bert이 코드는 작동하지 않습니다. 은 password 'mypassword'그것이 있어야, 잘못-password 'mypassword'
루시오

'mypassword'로 대체해야합니까?
user543489

나는 처형 sudo mysqladmin -u root -h localhost -password 'mypassword'을 당했지만 나는 얻는다 Access denied for user 'root'@'localhost' (using password: YES).
user543489

입력하면 어떻게됩니까 mysql -u root?
Lucio

1

이것은 12.04 이후 (쿠분투 12.04를 실행하고 있다고 추측) MySQL이 기본값이기 때문에 이상합니다. 사이에 몇 단계가 빠져있는 것 같습니다.이를 살펴 보겠습니다.

먼저 언급했듯이 설치를 시작하겠습니다.

sudo apt-get install mysql-server

설치 한 후 약간의 테스트를 해보자.

sudo netstat -tap | grep mysql

이것을 실행하면이 응답이 표시됩니다.

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

이것이 제대로 실행되지 않으면이 restart 명령을 실행하십시오.

sudo service mysql restart

이제 서버를 구성합니다.

/etc/mysql/my.cnf기본 설정을 구성 해 봅시다 . 여기에는 로그 파일, 포트 번호 등이 포함됩니다. 예를 들어, 네트워크 호스트로부터의 연결을 수신하도록 MySQL을 구성하려면 bind-address 지시문을 서버의 IP 주소로 변경하십시오.

bind-address            = 192.168.0.5

그런 다음 MySQL 데몬을 다시 시작하십시오.

sudo service mysql restart

MySQL 루트 비밀번호를 변경하려면 다음을 실행하십시오.

sudo dpkg-reconfigure mysql-server-5.5

데몬이 중지되고 새 비밀번호를 입력하라는 메시지가 표시됩니다.

완료되면 구성해야하며 몇 가지 Google 검색에서 데이터베이스 생성 방법을 알려줍니다.

출처 : Ubuntu Server Guide


0

이 명령을 실행하십시오 :

sudo dpkg-reconfigure mysql-server-5.5

(5.5는 버전 번호입니다. 다른 버전이있는 경우 적용하십시오)

이렇게하면 MySQL 루트 암호를 설정 한 다음 with mysqladminmysql명령 을 사용할 수 있습니다 .


-1

MySQL을 설치 한 후에는 mysql 루트 암호를 설정해야합니다. 그렇게하려면 :

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

이것은 이미 받아 들여진 대답에서 언급되지 않은 것은 기여하지 않습니다.
guntbert

-1

나는 이것이 3 세라는 것을 알고 있지만 방금이 문제가 있었고 다른 사람이 내가 한 것과 같은 검색을 수행 할 경우를 대비하여 답변을 게시하고 싶었습니다.

mysqladmin: connect to server at 'localhost' failed

이것은 사용자가 로그인하기 전에 데이터베이스 자체에 연결할 수있는 권한이 없음을 나타냅니다. 데이터베이스 사용자가 아니라 실제 Linux 사용자입니다. 수퍼 유저 권한으로 모든 것을 실행하십시오 : sudo mysql -u root -p

루트 (리눅스 사용자 또는 sudo 권한을 가진 사용자)만이 루트 (데이터베이스 사용자)로 mysql에 로그인 할 수 있습니다. 나는 이것을 문서화 한 곳을 찾을 수 없었지만 실험은 그것이 사실임을 입증했다. 루트 사용자와 동일한 권한을 가진 새 사용자를 만들 수 있으며이 사용자는 제한되지 않습니다.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

이제 "newuser"(또는 원하는 이름)를 sudo없이 로그인 할 수 있으며 모든 데이터베이스 관리 요구에 사용할 수 있습니다.


1
probably여기서 답에 단어 를 사용하는 것은 눈살을 찌푸리게합니다.
WinEunuuchs2Unix

글쎄, 나는 그것을 테스트하지 않고 있다고 말할 수는 없다.
WizardStan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.