Как подключить и создать базу данных в 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
Если вы действительно использовали эти 2 команды, где вы предоставили привилегии {username} (если не admin / root) для доступа к базе данных?
Rinzwind

Ответы:


26

После того, как вы установили MySQL, вам нужно установить пароль root для mysql . Для этого:

  1. Введите следующую команду в терминале:

    mysql -u root

  2. Теперь он должен открыть консоль mysql . И введите следующую строку:

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

Для выхода из консоли mysql введите exit.

Теперь вы должны создать базу данных с пользователем root . Для этого:

  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)
Николас Рауль

Эта ошибка означает, что у вас уже есть rootпользователь и у него есть пароль. Если вы забыли rootпароль, прочитайте документацию по MySQL .
Лусио

1

Вам необходимо подключиться к MySQL, используя пользователя root и связанный пароль. Если вам нужно установить их, используйте следующую команду: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'
Лусио

что-то должно быть заменено на «мой пароль»?
user543489

Я выполнил sudo mysqladmin -u root -h localhost -password 'mypassword', но я получаю Access denied for user 'root'@'localhost' (using password: YES).
user543489

@ user543489 Что произойдет, если вы введете mysql -u root?
Лусио

1

Это странно, потому что с 12.04 (предполагаю, что вы используете Kubuntu 12.04), MySQL используется по умолчанию. Похоже, вам не хватает нескольких шагов между ними, поэтому давайте посмотрим на это:

Во-первых, как вы упомянули, давайте сделаем установку,

sudo apt-get install mysql-server

После того, как вы установили его, давайте попробуем небольшой тест,

sudo netstat -tap | grep mysql

Когда вы запустите это, вы должны увидеть этот ответ,

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

Если это не работает правильно, запустите эту команду перезагрузки,

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.


0

Запустите эту команду:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 - номер версии, адаптируйтесь, если у вас другая версия)

Это позволит вам установить MySQL корневой пароль, который вы можете использовать с mysqladminи mysqlкоманды.


-1

После того, как вы установили MySQL, вам нужно установить пароль root для mysql. Для этого:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

Это не способствует тому, что еще не было сказано в принятом ответе.
Гюнтберт

-1

Я знаю, что это 3 года, но у меня тоже была эта проблема, и я хотел опубликовать свой ответ на тот случай, если кто-нибудь другой сделает такой же поиск, как и я.

mysqladmin: connect to server at 'localhost' failed

Это означает, что у вашего пользователя нет разрешения на подключение к самой базе данных, прежде чем он даже войдет в систему; не пользователь базы данных, ваш реальный пользователь Linux. Запустите все как суперпользователь: sudo mysql -u root -p

Только root (пользователь linux или пользователь с привилегиями sudo) может войти в mysql как root (пользователь базы данных). Я нигде не смог найти документальное подтверждение этого, но эксперименты доказали, что это так. Вы можете создать нового пользователя с теми же правами, что и у пользователя root, и это не будет ограничено.

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.