gpt4 book ai didi

mysql - 在 Mac 上安装带有 MySQL 的 MariaDB

转载 作者:行者123 更新时间:2023-11-29 01:26:08 29 4
gpt4 key购买 nike

我正在尝试使用 brew 在我的 Mac 上安装 MariaDB。但是,由于它与 MySQL 冲突,我正在努力安装它。我想知道是否有人可以建议如何设置它,所以我同时拥有 MariaDB 和 MySQL,因为我在我的机器上需要两者,因为我处理多个需要使用一个或另一个的项目。

3x-iMac:~ admin$ mysql.server start
Starting MariaDB
SUCCESS!

3x-iMac:~ admin$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

3x-iMac:~ admin$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> \s
--------------
mysql Ver 15.1 Distrib 10.3.8-MariaDB, for osx10.13 (x86_64) using readline 5.1

Connection id: 24
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MySQL
Server version: 8.0.11 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 2 hours 47 min 30 sec

Threads: 6 Questions: 1257 Slow queries: 0 Opens: 154 Flush tables: 2 Open tables: 130 Queries per second avg: 0.125
--------------

最佳答案

同时安装 MySQL 和 MariaDB 的问题不在于端口冲突(两个服务器默认绑定(bind)到端口 3306),因为这可以在服务器配置中更改。问题在于 MariaDB 是 MySQL 的直接替代品,因此对二进制文件使用相同的路径和名称(例如,mysqld 用于服务器,mysql 用于客户端)。因此,它们的设计方式是安装一个或另一个,但不能同时安装两个。

更好的方法是为两个数据库服务器设置一个 Docker 容器并使用它。这种方法还有一个好处,就是如果需要的话,还可以同时运行两个数据库服务器的多个不同版本。不过,您仍然需要将每个容器映射到不同的端口。

用于设置 MySQL 5 和 MariaDB 10 的简单 docker-compose.yml 可能如下所示:

version: '2'
services:
mysql5:
image: mysql:5
ports:
- "3305:3306/tcp"
environment:
- MYSQL_ROOT_PASSWORD=secret_password
- MYSQL_USER=user
- MYSQL_PASSWORD=user_password_here
- MYSQL_DATABASE=my_db
mariadb10:
image: mariadb:10
ports:
- "3310:3306/tcp"
environment:
- MYSQL_ROOT_PASSWORD=secret_password
- MYSQL_USER=user
- MYSQL_PASSWORD=user_password_here
- MYSQL_DATABASE=my_db

您可以通过在 docker-compose.yml 文件目录中的终端中键入 docker-compose up -d 来启动这两个容器,前提是 docker-compose已安装在您的系统上。

MySQL 5 可在端口 3305 上使用,MariaDB 可在端口 3310 上使用。(这样就有可能在端口 3306 上使用 native MySQL 或 MariaDB。)当然,应该调整数据库用户、密码和数据库名称的环境变量。如果您需要不同的版本,MySQL 和 MariaDB 的版本也是如此。

容器启动后(docker-compose up -d)您可以连接到它们,例如通过:

mysql --host=::1 --user=user --password my_db --port=3310

(请注意您提供了正确的端口参数。在本例中,端口 3310 用于 MariaDB 10。)

输入用户 user 的密码后,您可以发出 SQL 查询:

Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.5.5-10.3.8-MariaDB-1:10.3.8+maria~jessie mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_db |
+--------------------+
2 rows in set (0,00 sec)

mysql> USE my_db;
Database changed
mysql> SHOW TABLES;
Empty set (0,00 sec)

mysql> quit
Bye

玩得开心!

关于mysql - 在 Mac 上安装带有 MySQL 的 MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189634/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com