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 mysqladmin및 mysql명령 을 사용할 수 있습니다 .


-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.