spq*_*pqa 67 mysql root password software-installation
我曾经apt install mysql-server
在 Ubuntu 16.04 上安装 MySQL,但在安装过程中,它没有要求输入 root 密码。
安装后,ERROR 1045
当我尝试登录时遇到root
并mysql_secure_installation
抛出相同的错误。我purge
d 和autoremove
d 然后重新安装,但它不起作用。
我怎么能解决这个问题?如果我在安装过程中没有设置root密码,我可以设置它吗?
这是我的安装日志:
将安装以下附加软件包: libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7 mysql-server-core-5.7 推荐套餐: mailx tinyca 将安装以下新软件包: libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server mysql-server-5.7 mysql-server-core-5.7 0 个升级,6 个新安装,0 个删除,0 个未升级。 需要获得 0 B/17,9 MB 的档案。 此操作后,将使用 160 MB 的额外磁盘空间。 你要继续吗?[是/否] 是 预配置包... 选择以前未选择的软件包 libaio1:amd64。 (正在读取数据库...当前安装了 227144 个文件和目录。) 准备解压 .../libaio1_0.3.110-2_amd64.deb ... 解压 libaio1:amd64 (0.3.110-2) ... 选择以前未选择的包 mysql-client-core-5.7。 准备解压 .../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ... 解压 mysql-client-core-5.7 (5.7.12-0ubuntu1) ... 选择以前未选择的包 mysql-client-5.7。 准备解压 .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ... 解压 mysql-client-5.7 (5.7.12-0ubuntu1) ... 选择以前未选择的软件包 mysql-server-core-5.7。 准备解压 .../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ... 解压 mysql-server-core-5.7 (5.7.12-0ubuntu1) ... 选择以前未选择的包 mysql-server-5.7。 准备解压 .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ... 解压 mysql-server-5.7 (5.7.12-0ubuntu1) ... 选择以前未选择的包 mysql-server。 准备解压 .../mysql-server_5.7.12-0ubuntu1_all.deb ... 解压 mysql-server (5.7.12-0ubuntu1) ... 处理 libc-bin (2.23-0ubuntu3) 的触发器... 处理 man-db (2.7.5-1) 的触发器... 处理 systemd (229-4ubuntu4) 的触发器... 处理 ureadahead (0.100.0-19) 的触发器... 设置 libaio1:amd64 (0.3.110-2) ... 设置 mysql-client-core-5.7 (5.7.12-0ubuntu1) ... 设置 mysql-client-5.7 (5.7.12-0ubuntu1) ... 设置 mysql-server-core-5.7 (5.7.12-0ubuntu1) ... 设置 mysql-server-5.7 (5.7.12-0ubuntu1) ... update-alternatives:使用/etc/mysql/mysql.cnf在自动模式下提供/etc/mysql/my.cnf(my.cnf) 检查是否需要更新。 本次安装 MySQL 已经升级到 5.7.12,如果还需要运行 mysql_upgrade 使用 --force 设置 mysql-server (5.7.12-0ubuntu1) ... 处理 libc-bin (2.23-0ubuntu3) 的触发器...
L. *_*mes 70
您可以在不知道当前密码的情况下通过启动 mysql 而不加载授权表来恢复或设置 root 密码。
请注意$
命令中的 。这是指定您在输入命令时看到的终端提示。它显示它是一行文本,但是实际键入的终端命令。" mysql>
" 前缀也是一个提示。这就是你交互运行mysql时得到的提示。
这是执行此操作的cli(命令行):(
确保在执行这些步骤之前停止当前服务器。一次只能运行一台服务器。)
$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&
Run Code Online (Sandbox Code Playgroud)
现在,您可以在没有密码的情况下以 root 身份登录并执行所有命令,在本例中,将 root 密码设置为 root。
$ sudo mysql --user=root mysql
Run Code Online (Sandbox Code Playgroud)
如果您有 MySQL 5.6 或更低版本,这是您将在 mysql 中执行的设置 root 密码:
mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
Run Code Online (Sandbox Code Playgroud)
在 MySQL 5.7 或以上
mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;
Run Code Online (Sandbox Code Playgroud)
从那里,退出(杀死正在运行的 msqld)mysql 并正常启动它。
启动和停止mysql服务的注意事项:
停止mysql:
$ sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)
启动mysql(正常):
$ sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
杀死临时的 mysql 安全模式会话:
$ sudo mysqladmin shutdown
Run Code Online (Sandbox Code Playgroud)
d a*_*s y 45
mysql
在 Ubuntu 16.04 中安装时不会要求输入密码,但您可以在安装成功后通过以下方式进行设置:
mysql安装完成后,运行命令:
sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
它会显示:
注意:建议在生产使用中为所有 MariaDB 服务器运行此脚本的所有部分!请仔细阅读每一步!
为了登录 MariaDB 以保护它,我们需要 root 用户的当前密码。 如果您刚刚安装了 MariaDB,并且尚未设置 root 密码,则密码将为空白,因此您只需在此处按 Enter。
Enter current password for root (enter for none):
(这里按回车)
好的,成功使用密码,继续...
设置 root 密码可确保未经适当授权,任何人都无法登录 MariaDB root 用户。
Run Code Online (Sandbox Code Playgroud)Set root password? [Y/n] y (press 'y' to set new password) New password: Re-enter new password:
密码更新成功!重新加载权限表......成功!
对于 Ubuntu 18.04 或mysql-server
5.7.22 版,此方法将不起作用
要在 Ubuntu 18.04 中设置 root 密码,首先按照前三个命令或LD James 的回答的前两个步骤然后运行,
mysql> alter user 'root'@'localhost' identified by '<password>';
Run Code Online (Sandbox Code Playgroud)
设置root用户密码!
按照以下步骤在 18.04 中设置 root 密码:
由于没有为root用户设置密码,只需使用空白密码登录
sudo mysql -u root -p
Enter password: (press enter as no password is set)
Run Code Online (Sandbox Code Playgroud)
之后可以轻松运行查询
ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';
Run Code Online (Sandbox Code Playgroud)
小智 23
显然,16.04 上的 mysql-server 安装(或任何 5.7 安装?)允许 root 访问不是通过密码,而是通过auth_socket插件。运行sudo mysql -u root
(nb w/oa 密码)将为您提供 mysql 控制台,而以非 root 用户身份运行该命令会提示您输入密码。
更改密码似乎没有太大区别,因为身份验证后端甚至不检查密码。有一篇非常全面的文章介绍了如何更改插件并切换到密码身份验证。
Dim*_*Dak 22
安装后只需:
sudo mysql
(是的,没有用户没有通行证)
您现在在 mysql 控制台中。执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
就是这样。您现在可以像往常一样下次进入控制台:
mysql -u root -pmy_new_pass
Run Code Online (Sandbox Code Playgroud)
小智 6
有一个默认用户帐户。
$ vim /etc/mysql/debian.cnf
Run Code Online (Sandbox Code Playgroud)
您将像这样从中获得此帐户:
user = debian-sys-maint
password = nUZTARYslBsASzpw
Run Code Online (Sandbox Code Playgroud)你用这个账号登录
$ mysql -u debian-sys-maint -p
Run Code Online (Sandbox Code Playgroud)编辑你的root密码
mysql> show databases?
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;
Run Code Online (Sandbox Code Playgroud)重启mysql
$ /etc/init.d/mysql restart;
Run Code Online (Sandbox Code Playgroud)然后你可以mysql -u root -p
用你以前的设置。
归档时间: |
|
查看次数: |
125478 次 |
最近记录: |