安装和卸载是补充知识点,非必须可以跳过
UBUNTU mariadb解决不需要用户名密码就可以登陆的问题,使其,必须用户名密码登陆
要彻底卸载Mariadb,您可以按照以下步骤进行操作:
-
停止Mariadb服务:
-
sudo systemctl stop mariadb
-
卸载Mariadb软件包:
-
sudo apt-get remove --purge mariadb-server mariadb-client mariadb-common
-
删除Mariadb相关文件和文件夹:
-
sudo rm -rf /etc/mysql/ /var/lib/mysql/ /var/log/mysql/
-
最后,清理残留的配置文件:
-
sudo apt-get autoremove && sudo apt-get autoclean
现在,Mariadb已经完全从您的系统中删除了。
Packages for Linux and Unix
https://pkgs.org/ 安装包大全网站,非常好用deb包直接双击安装不必打命令减少错误率
安装mariadb
http://archive.ubuntu.com/ubuntu/pool/universe/m/mariadb-10.6/mariadb-server_10.6.7-2ubuntu1_all.deb |
双击deb安装MariaDB Server之后,您需要进行一些配置才能开始使用它。以下是一些基本的配置步骤:
-
运行安全脚本
MariaDB提供了一个安全脚本,可以帮助您设置密码,删除匿名用户,禁用远程根访问等。运行以下命令以启动安全脚本:
-
sudo mysql_secure_installation
按照提示输入密码并回答问题即可进行配置。
-
Enter current password for root (enter for none):按回车
-
问题参考不是大问题感觉随便设置
-
You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n]
当您运行
mysql_secure_installation
时,它会检查MariaDB安装的当前设置。在这种情况下,它检测到root用户使用unix_socket身份验证而不是密码身份验证。如果您选择“Y”(yes),则将启用unix_socket身份验证,即只有拥有操作系统上root用户权限的用户才能登录到MariaDB服务器。
如果您选择“n”(no),则将继续使用密码身份验证,这意味着要使用密码来验证root用户的身份。如果您希望使用密码身份验证,请输入“n”,然后按Enter键。
You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n]
当您运行
mysql_secure_installation
时,它将询问您是否要更改root用户的密码。如果您已经设置了密码并知道密码,那么您可以选择“n”(no)以跳过此步骤。如果您想更改root用户的密码,请选择“Y”(yes),然后按Enter键,并按照指示输入新密码。注意,安全性最好的密码是包含大小写字母、数字和特殊字符的长密码。
无论您选择哪个选项,请根据您的需求选择相应的选项。
Remove anonymous users? [Y/n]
当您运行
mysql_secure_installation
时,它将询问是否删除匿名用户。匿名用户是指能够连接到MariaDB服务器而不需要提供用户名和密码的用户。如果您希望增强安全性,则应该选择“Y”(yes)以删除匿名用户。
如果您有其他用户需要使用MariaDB服务器,但他们不想使用用户名和密码进行身份验证,则应选择“n”(no)以保留匿名用户。
无论您选择哪个选项,请根据您的需求选择相应的选项。
Disallow root login remotely? [Y/n
当您运行
mysql_secure_installation
时,它将询问是否允许root用户远程登录到MariaDB服务器。如果启用了远程root登录,攻击者可以利用此漏洞,尝试使用不同的密码组合进行暴力破解以获取对服务器的访问权限。如果您希望增强安全性,则应选择“Y”(yes)以禁用远程root登录。
如果您需要从远程位置管理MariaDB服务器,则应选择“n”(no)以允许远程root登录。但请注意,在这种情况下,您应该确保密码的复杂度和强度,以避免出现风险。
无论您选择哪个选项,请根据您的需求选择相应的选项。
Remove test database and access to it? [Y/n]
当您运行
mysql_secure_installation
时,它将询问是否删除测试数据库,并删除对它的访问权限。测试数据库是一个默认的数据库,其中包含一些示例表和数据。这些示例表和数据可能会被攻击者用于进行尝试性的攻击。如果您希望增强安全性,则应选择“Y”(yes)以删除测试数据库及其访问权限。但请注意,这将删除测试数据库中的所有表和数据,因此请确保在执行此操作之前备份重要数据。
如果您需要保留测试数据库或者已经删除了测试数据库,则应选择“n”(no)以跳过此步骤。
无论您选择哪个选项,请根据您的需求选择相应的选项。
Reload privilege tables now? [Y/n]
当您运行
mysql_secure_installation
时,它将询问是否重新加载权限表。如果您进行了任何更改,如删除匿名用户、禁用远程root登录或删除测试数据库,则需要重新加载权限表才能使更改生效。如果您已经完成了所有更改,则应选择“Y”(yes)以重新加载权限表并使更改生效。
如果您还有其他更改需要进行,则应选择“n”(no)以在完成所有更改后一次性重新加载权限表。
无论您选择哪个选项,请根据您的需求选择相应的选项。
2023/4/14 09:23:03
为什么不需要密码就登陆了数据库
2023/4/14 09:23:13
如果您可以使用root用户而无需输入密码即可登录到MariaDB服务器,则可能是因为root用户已经设置了基于Unix套接字的身份验证方式。
默认情况下,MariaDB会使用基于密码的身份验证方式进行登录。但是,如果在安装期间选择了基于Unix套接字的身份验证方式,则只有当您作为系统上的root用户时才能使用此身份验证方式登录MariaDB服务。
因此,如果您正在以root用户的身份登录或者使用sudo命令时切换到root用户,那么您将被允许无需密码即可登录到MariaDB服务器。
如果您希望强制要求用户提供密码以验证其身份,则可以在MariaDB服务器上更改root用户的身份验证方式。
-
启动和停止MariaDB服务
使用以下命令启动MariaDB服务:
sudo systemctl start mariadb
要停止服务,请使用以下命令:
sudo systemctl stop mariadb
以上是安装和卸载 ,可以跳过
解决不需要用户名密码就可以登陆的问题,使其,必须用户名密码登陆
要更改MariaDB服务器上root用户的身份验证方式,可以按照以下步骤进行操作:
第一种方法
-
打开MariaDB配置文件 my.cnf:
-
sudo nano /etc/mysql/my.cnf
-
在[mysqld]部分中添加以下内容,以启用密码身份验证:
-
[mysqld] # ... skip_grant_tables=0
保存并关闭my.cnf文件。
-
重启MariaDB服务以使更改生效:
-
sudo systemctl restart mariadb
现在,当您尝试使用root用户登录到MariaDB服务器时,将需要输入密码进行身份验证。如果您想再次启用基于Unix套接字的身份验证方式,请编辑my.cnf文件并删除skip-grant-tables选项,然后重新启动MariaDB服务器。
[mysqld] # ... skip_grant_tables=0 并没有这一项
2023/4/14 09:24:56
如果在my.cnf
文件中没有找到 skip_grant_tables
这一项,那么这可能是因为该选项未被设置或注释掉了。
在这种情况下,您可以尝试添加以下行到my.cnf
文件的末尾,以启用密码身份验证:
[mysqld]
skip-grant-tables=0
如果该行已经存在于my.cnf
文件中,但它被注释掉了(即前面有一个#号),那么您需要取消注释该行。要做到这一点,只需删除#号即可。
完成这些更改后,保存并关闭my.cnf
文件,并重新启动MariaDB服务,以使更改生效:
sudo systemctl restart mariadb
现在,当您尝试使用root用户登录到MariaDB服务器时,将需要输入密码进行身份验证。
保存并关闭my.cnf文件。怎么保存
要保存并关闭my.cnf
文件,您需要使用nano文本编辑器中的快捷键。按下Ctrl+O键(即字母“O”),将会提示您输入文件名。根据需要输入文件名,并按Enter键。
然后按下Ctrl+X键来退出nano编辑器。如果您对文件进行了更改,则会提示您保存更改。按下Y键以确认保存更改,然后按Enter键即可完成保存并关闭文件。
请注意,在Nano编辑器中,行首有一个“^”符号表示Ctrl键。例如,“^O”表示按下Ctrl和字母O键。
希望这可以帮助您保存并关闭 my.cnf
文件。
然而并没有生效!!!!!!!!!!!
第二种方案
如果在修改了my.cnf
文件并重启MariaDB后仍然无法通过密码身份验证登录到MariaDB服务器,则可能是因为您未正确设置root用户的密码。
您可以使用以下命令来设置root用户的密码:
-
以root用户身份登录到MariaDB:
-
sudo mysql -u root
-
使用以下命令更改root用户的密码:
-
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
请将“new_password”替换为您要设置的新密码。
-
可能会报错
-
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BY 'pop'' at line 1 ,看第三种方案
-
刷新MySQL权限表格:
-
FLUSH PRIVILEGES;
-
退出MariaDB会话:
-
quit;
-
用新密码重新登录MariaDB:
-
mysql -u root -p
输入您刚设置的新密码即可登录。
-
并没有效果!!!!!!!!!!!
-
第三种方案 我的是第三种生效的
-
抱歉,我的先前回答中有一个错误。在设置root用户密码时,您需要使用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
请注意,此命令中没有WITH mysql_native_password语句。
请将“new_password”替换为您要设置的新密码。完成更改后,请使用以下命令刷新权限表格:
FLUSH PRIVILEGES;
退出MariaDB会话,然后使用新密码重新登录MariaDB以验证更改是否生效:
mysql -u root -p
完成这些步骤后,您应该能够使用用户名和密码进行身份验证,并成功登录到MariaDB服务器。