首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >国产Mariadb Mysql安装根目录访问被拒绝

国产Mariadb Mysql安装根目录访问被拒绝
EN

Stack Overflow用户
提问于 2019-09-05 10:38:02
回答 4查看 11.4K关注 0票数 12

因此,我基本上是在我的mac上用mysql安装mariadb,使用的是自制的。以下是我所做的步骤:

  • brew医生->工作
  • brew更新->工作
  • brew安装mariadb ->工作过
  • mysql_install_db ->失败 警告:无法使用/usr/local/Cellar/mariadb/10.4.6_1/bin/resolveip.查找主机'Toms-MacBook-Pro.local‘这可能意味着您的libc库与这个二进制MariaDB版本不完全兼容。MariaDB守护进程mysqld应该正常工作,除非主机名解析不能工作。这意味着在指定MariaDB特权时,应该使用IP地址而不是主机名!mysql.user表已经存在!

运行mysql_upgrade后给出了以下错误:

版本检查失败。在调用“mysql”命令行客户端错误1698 (28000)时获得以下错误:用户'root'@'localhost‘的访问被拒绝,致命错误:升级失败

我不能像这样输入mysql:

代码语言:javascript
复制
mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

但像这样:

代码语言:javascript
复制
sudo mysql -u root

user表返回以下内容:

代码语言:javascript
复制
MariaDB [(none)]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> SELECT User, Host, plugin FROM mysql.user;
+---------------+-------------------------+-----------------------+
| User          | Host                    | plugin                |
+---------------+-------------------------+-----------------------+
| root          | localhost               | mysql_native_password |
| toms          | localhost               | mysql_native_password |
|               | localhost               |                       |
|               | toms-macbook-pro.local |                       |
+---------------+-------------------------+-----------------------+
4 rows in set (0.004 sec)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-09-05 12:41:42

您可以尝试更新根密码,然后访问它。

代码语言:javascript
复制
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

退出Mysql并尝试登录

代码语言:javascript
复制
mysql -uroot -p # then use root as a password
票数 20
EN

Stack Overflow用户

发布于 2021-07-24 16:29:23

有什么问题吗?

  • 使用brew,brew install mariadb@10.2安装brew install mariadb@10.2
  • 尝试重置根密码。
代码语言:javascript
复制
- Method 1: `mysqld_safe` command
代码语言:javascript
复制
    - run command: `brew services stop mariadb@10.2`
    - run command: `mysqld_safe --skip-grant-tables --skip-networking`
    - on a new terminal tab,

MariaDB <= 10.4:mysql_secure_installation运行命令

运行MariaDB >= 10.4 mariadb-secure-installation命令

在接下来的步骤中,

代码语言:javascript
复制
    - this will ask to enter root password
    - hit enter without entering any password (this step might never go away!)
    - if empty root password is granted in previous step 

输入并重新输入新密码。

-这可能会显示出一些错误,Password update failed!

代码语言:javascript
复制
- Method 2: `/usr/local/mysql/bin/mysqladmin -u root -p password`
代码语言:javascript
复制
    - this will ask to enter password
    - hit enter without entering any password
    - this will show some errors!

,但前两种方法都不起作用!

  • 遵循工作方法:
    • 启动mariadb@10.2服务brew services start mariadb@10.2

代码语言:javascript
复制
- run `mysql.servert start`
代码语言:javascript
复制
- this will show an error with error log file location
代码语言:javascript
复制
- typical mariadb error file location: `/usr/local/var/mysql/<filename>.local.err`
代码语言:javascript
复制
- run `tail -f /usr/local/var/mysql/<filename>.local.err`
代码语言:javascript
复制
- then re-run `mysql.servert start`
代码语言:javascript
复制
- there will be an error related to `Invalid flags lib`
代码语言:javascript
复制
- run `brew services stop mariadb@10.2`
代码语言:javascript
复制
- (**BACKUP, BACKUP, BACKUP YOUR DBS! THIS WILL DELETE ALL DBs!**) 

run sudo rm -rf /usr/local/var/mysql

代码语言:javascript
复制
- run

mysql_install_db -详细--用户=whoami-basedir=“$(brew--前缀mariadb@10.2)”-datadir=“/usr/local/var/mysql”-tempdir=“/tmp”

这将从brew获得mariaDB单元安装路径,这将安装初始db。

代码语言:javascript
复制
- instead of running `mysql_secure_installation` or `mariadb-secure-installation` **run**: `sudo mysql -u root`
代码语言:javascript
复制
- this will drop to mysql shell
代码语言:javascript
复制
- enter command: `use mysql;`
代码语言:javascript
复制
- enter command: `ALTER USER 'root@localhost' IDENTIFIED BY '<password>';` (replace the )
代码语言:javascript
复制
- enter command: `ALTER USER 'root@127.0.0.1' IDENTIFIED BY '<password>';` (replace the )
代码语言:javascript
复制
- enter command: `FLUSH PRIVILEGES;`
代码语言:javascript
复制
- enter command: `exit`
代码语言:javascript
复制
- now you can run `mysql -u root -p` and use the `<password>` entered in earlier step.

就这样!

票数 1
EN

Stack Overflow用户

发布于 2019-09-05 12:29:37

默认情况下,MariaDB 10.4为本地根启用Unix插座身份验证插件。这意味着,在刚安装的系统上,只要您是本地根(例如,在sudo下运行),并且使用套接字而不是TCP,您就可以在没有密码的情况下连接到正在运行的服务器。

此外,MariaDB 10.4允许对帐户使用多个身份验证方法。它将本地根配置为也能够使用密码身份验证,但它最初使密码无效(不像以前那样设置空密码)。如果要使用密码身份验证并以mysql -uroot -p身份连接,则首先需要使用Unix作为根用户进行连接,然后运行SET PASSWORD=...

高级用户配置现在以JSON格式存储在mysql.global_priv表中。mysql.user是为了向后兼容性而保留的,但它已经不再是一个表,而是一个视图。由于允许多个身份验证方法,它并不总是准确地显示用户配置。具体来说,它并不显示用户可用的所有身份验证方法,您需要查询mysql.global_priv。在新的安装中,您将看到以下内容

代码语言:javascript
复制
+-----------+--------+--------------------------------------------------------------------------------------------------------------------------------------------+
| Host      | User   | Priv                                                                                                                                       |
+-----------+--------+--------------------------------------------------------------------------------------------------------------------------------------------+
| localhost | root   | {"access":18446744073709551615,"plugin":"mysql_native_password","authentication_string":"invalid","auth_or":[{},{"plugin":"unix_socket"}]} |
...

您可以找到有关10.4身份验证更改这里的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57803604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档