如何在Arch Linux上安装MariaDB 10.3或MySQL 8.0
先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问:需要以root身份运行的命令以#开头,其中一个
MariaDB是一个免费的开源数据库,并且是MySQL中使用最广泛的直接替代方法。它由MySQL的开发人员制作,并打算在GNU GPL下保持免费。它非常快速,可扩展,并且具有丰富的功能集,使其对于各种用例都非常通用。
本教程将引导您逐步了解如何在Ubuntu 16.04上安装和配置具有SSL支持的MariaDB。
默认情况下,Ubuntu 16.04存储库中不提供最新版本的MariaDB。因此您需要将MariaDB存储库添加到系统中。
首先,使用以下命令下载密钥:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
接下来,将MariaDB存储库添加到/etc/apt/sources.list
文件中:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
使用以下命令更新apt索引:
sudo apt-get update -y
apt索引更新后,使用以下命令安装MariaDB服务器:
sudo apt-get install mariadb-server -y
启动MariaDB服务器,并使其在启动时启动:
sudo systemctl start mysql
sudo systemctl enable mysql
接下来,您将需要运行mysql_secure_installation
脚本来保护MariaDB的安装。此脚本允许您设置root密码,删除匿名用户,禁止远程root登录以及删除测试数据库:
sudo mysql_secure_installation
首先,创建一个目录来存储所有密钥和证书文件。
sudo mkdir /etc/mysql-ssl
接下来,/etc/mysql-ssl
使用以下命令将目录更改为并创建CA证书和私钥:
sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
回答所有问题,如下所示:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]
接下来,使用以下命令为服务器创建私钥:
sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
像上一个命令一样回答所有问题。
接下来,使用以下命令将服务器的私钥导出为RSA类型的密钥:
sudo sudo openssl rsa -in server-key.pem -out server-key.pem
最后,使用CA证书生成服务器证书,如下所示:
sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
现在,您可以使用以下命令查看所有证书和密钥:
ls
您应该看到以下输出:
ca-cert.pem ca-key.pem server-cert.pem server-key.pem server-req.pem
完成后,您可以继续下一步。
您应该拥有所有证书和一个私钥;现在您将需要配置MariaDB以使用密钥和证书。您可以通过编辑/etc/mysql/mariadb.conf.d/50-server.cnf
文件来做到这一点:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
在该[mysqld]
部分下添加以下行:
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem
##Change this value to connect the MariaDB server from another host.
bind-address = *
保存文件,然后重新启动MariaDB服务以应用以下更改:
sudo systemctl restart mysql
现在,您可以通过以下查询检查SSL配置是否正常工作:
mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';
如果配置成功,您应该看到以下输出:
+---------------+--------------------------------+
| Variable_name | Value |
+---------------+--------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/mysql-ssl/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/mysql-ssl/server-key.pem |
+---------------+--------------------------------+
您应该注意到上述输出中的have_ssl
和have_openssl
值已启用。
创建一个有权通过SSL访问MariaDB服务器的远程用户。通过运行以下命令来执行此操作:
首先,登录到MySQL shell:
mysql -u root -p
接下来,创建用户remote
并授予特权以通过SSL访问服务器。
MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;
然后,使用以下命令刷新特权:
MariaDB [(none)]>FLUSH PRIVILEGES;
最后,使用以下命令从MySQL Shell退出:
MariaDB [(none)]>exit;
注意: 192.168.0.191是远程用户(客户端)计算机的IP地址。
现在,您的服务器已准备好允许连接到远程用户。
您的服务器端配置已完成。接下来,您将需要为客户端创建一个新的密钥和证书。
在服务器计算机上,使用以下命令创建客户端密钥:
sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem
接下来,使用以下命令处理客户端RSA密钥:
sudo openssl rsa -in client-key.pem -out client-key.pem
最后,使用以下命令签署客户端证书:
sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
所有证书和密钥都已准备好供客户端使用。接下来,您将需要将所有客户端证书复制到要运行MariaDB客户端的任何客户端计算机上。
您将需要在客户端计算机上安装MariaDB客户端。
首先,在客户端计算机上,使用以下命令下载MariaDB的密钥:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
然后,将MariaDB存储库添加到/etc/apt/sources.list
文件中:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
接下来,使用以下命令更新apt索引:
sudo apt-get update -y
apt索引更新后,使用以下命令在客户端计算机上安装MariaDB客户端:
sudo apt-get install mariadb-client -y
现在创建一个目录来存储所有证书:
sudo mkdir /etc/mysql-ssl
接下来,使用以下命令将所有客户端证书从服务器计算机复制到客户端计算机:
sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/
然后,您将需要配置MariaDB客户端以使用SSL。您可以通过创建一个/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
文件来做到这一点 :
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
添加以下行:
[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem
完成后保存文件。
现在,所有内容都已配置完毕,是时候验证是否可以成功连接到MariaDB服务器了。
在客户端计算机上,运行以下命令以连接到MariaDB服务器:
mysql -u remote -h 192.168.0.190 -p mysql
系统将要求您输入remote
用户密码。输入密码后,您将登录到远程MariaDB服务器。
使用以下命令检查连接状态:
MariaDB [mysql]> status
您应该看到以下输出:
--------------
mysql Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Connection id: 62
Current database: mysql
Current user: [email protected]
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version: 10
Connection: 192.168.0.190 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 1 hours 31 min 31 sec
您应该SSL: Cipher in use is DHE-RSA-AES256-SHA
在上面的输出中看到。这意味着您的连接现在通过SSL安全。
恭喜你!您已成功配置具有SSL支持的MariaDB服务器。您现在可以将访问权限授予其他客户端,以通过SSL访问MariaDB服务器。
先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问:需要以root身份运行的命令以#开头,其中一个
自2009年推出以来,MongoDB一直引领NoSQL行业。MongoDB的核心概念之一是副本集,因此在使用i之前
简介在本文中,我们将逐步介绍如何使用自定义bash脚本备份位于同一台计算机上的多个MySQL或MariaDB数据库
使用其他系统?Apache Cassandra是免费的开源NoSQL数据库管理系统,旨在提供可扩展性,高
OrientDB是下一代多模型开源NoSQL DBMS。通过支持多种数据模型,OrientDB可以在以下方面提供更多功能和灵活性:
备份是处理数据库的重要部分。无论您是运行公司网站还是仅托管WordPress,备份您的信息都很重要
Redis是键值数据存储解决方案,通常称为NoSQL数据库。它是内存中的单元,因此可以实现很高的读/写速度。
MySQL是世界上用于数据库的最流行的软件。确保您具有数据库备份非常重要。这种做法允许
简介InfluxDB是用Go编写的基于时间序列的数据库。InfluxDB有许多实际用途,其中之一是将监视数据存储在服务器上。一世
先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文。)Sudo访问。需要以root身份运行的命令以#开头,其中一个
在本文中,我将向您展示如何在OpenBSD 6上安装MariaDB并将其配置为可供chroot的Web服务器(Apache或Nginx)访问。你会
使用其他系统?Apache Cassandra是免费的开源NoSQL数据库管理系统,旨在提供可扩展性,高
Barnyard2是一种将Snort的二进制输出存储和处理到MySQL数据库中的方法。开始之前,请注意,如果您没有打nor
Redis是一个数据结构存储。它在WordPress网站中很受欢迎,因为它通过优化的缓存方法提供了巨大的性能提升。
使用其他系统?简介ArangoDB是一个开放源代码NoSQL数据库,具有用于文档,图形和键值的灵活数据模型。它是
先决条件运行最新的Arch Linux的Vultr服务器(请参阅本文)Sudo访问:需要以root身份运行的命令以#开头,其中一个
使用其他系统?Apache Cassandra是免费的开源NoSQL数据库管理系统,旨在提供可扩展性,高
Laravel GitScrum或GitScrum是一种开源生产力工具,旨在帮助开发团队以类似的方式实施Scrum方法。
前提条件Docker引擎1.8+。至少4GB的磁盘空间。至少4GB的RAM。步骤1.安装Docker为了安装SQL-Server,Docker mus
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。