如何在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)特权以访问数据库?
Rinzwind

Answers:


26

安装MySQL之后,您需要设置mysql root password。为此:

  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)
Nicolas Raoul

该错误意味着您已经有一个root用户,并且具有密码。如果您忘记了root密码,请阅读MySQL文档
Lucio 2014年

1

您需要使用root用户和关联的密码连接到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 2013年

@Bert此代码无效。将password 'mypassword'是错误的,它应该是-password 'mypassword'
卢西奥

应该用“ mypassword”代替吗?
user543489

我处决了sudo mysqladmin -u root -h localhost -password 'mypassword',但是我得到了Access denied for user 'root'@'localhost' (using password: YES)
2013年

@ user543489如果输入,会发生什么mysql -u root
Lucio

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 root密码,请运行以下命令:

sudo dpkg-reconfigure mysql-server-5.5

该守护程序将停止,并提示您输入新密码。

完成后,应进行配置,并且一些Google搜索将教您如何创建数据库

资料来源:《 Ubuntu服务器指南》


0

运行以下命令:

sudo dpkg-reconfigure mysql-server-5.5

(5.5是版本号,如果您使用其他版本,请改编)

这将允许您设置MySQL的root密码,然后可以将其与mysqladminmysql命令一起使用。


-1

安装MySQL之后,您需要设置mysql root密码。为此:

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特权的用户)才能以root用户(数据库用户)身份登录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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.