㈠ 如何在Linux中重置Mysql或MariaDB root密碼
恢復 MySQL 或者 MariaDB 的 root 密碼
開始之前,先停止資料庫服務並檢查服務狀態,我們應該可以看到先前設置的環境變數:
------------- SystemD -------------
# systemctl stop mariadb
------------- SysVinit -------------
# /etc/init.d/mysqld stop
接下來,用 --skip-grant-tables 選項啟動服務:
------------- SystemD -------------
# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
# systemctl start mariadb
# systemctl status mariadb
------------- SysVinit -------------
# mysqld_safe --skip-grant-tables &
使用 skip tables 啟動 MySQL/MariaDB
這可以讓你不用 root 密碼就能連接到資料庫(你也許需要切換到另外一個終端上):
# mysql -u root
接下來,按照下面列出的步驟來。
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
最後,停止服務,取消環境變數設置並再次啟動服務:
------------- SystemD -------------
# systemctl stop mariadb
# systemctl unset-environment MYSQLD_OPTS
# systemctl start mariadb
------------- SysVinit -------------
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
這可以讓先前的改變生效,允許你使用新的密碼連接到資料庫
㈡ 怎樣將資料庫MySQL 遷移到 MariaDB 上
如果是相同的基礎版本(如 5.5),可以直接卸載 MySQL 然後安裝 MariaDB,這樣就可以用了。甚至不需要備份然後還原資料庫。當然,保險起見,升級前將所有的資料庫都備份一下還是非常有必要的,以防萬一。如果 MariaDB 的主版本高,在經過上面的卸載 MySQL 再安裝 MariaDB 操作之後,需要使用 mysql_upgrade 升級一下。是的,甚至連命令行都與使用MySQL 的時候一樣。
A. 先配置 MariaDB的安裝源。
目前 MariaDB 的主版本是 10.1,將下面的安裝源配置保存為MariaDB.repo,上傳到伺服器的 /etc/yum.repos.d 文件夾:
[mariadb]
name = MariaDB
enable=1
priority=3
baseurl = http://yum.mariadb.org/10.1/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
其中 priority=3 是針對 YUM 的 PRIORITIES 優先順序插件的。
B. 卸載原來的 MYSQL 及相關包。
# yum remove mysql*
上面用 * 來匹配刪除所有 mysql 數據包(包括因包依賴而刪除的別的包,如 postfix)。因為直接安裝的時候會出現沖突,例如:
file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-server-***** conflicts with file from package mysql-libs-5.5.32-****
嗯,好像因為將 php-mysql 也給刪除了(實際上這個不該刪除的),所以 phpMyAdmin 也因為依賴關系而被刪除了,我沒仔細看。
所以最好不要用通配符 *,而是選擇性刪除幾個主要的,
# yum remove mysql mysql-server mysql-libs
但是這個我沒有再測試,因為後面有更好的方法。
C. 然後安裝 MariaDB及相應 PHP 擴展。
也是指定幾個主要的安裝包,剩下的讓 yum 自己進行依賴關系檢查。
# yum install MariaDB-server MariaDB-client php-mysql
或者不安裝 MariaDB-server 而改為具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:
# yum install MariaDB-Galera-server MariaDB-client galera
這里比較搞笑的是,沒注意前面把 php-mysql 給卸載了,結果運行資料庫之後訪問 WordPress,結果遭遇下面的錯誤:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
D. 完成,修補MariaDB
不管版本是否升級了,執行一下資料庫升級指令總沒有壞處:
# mysql_upgrade -p
看看資料庫版本是不是升級了:
# mysql -u root -p -e 『show global variables like 「version」;』
Enter password:
+—————+—————-+
| Variable_name | Value |
+—————+—————-+
| version | 5.5.31-MariaDB |
+—————+—————-+
將 MariaDB 加入隨系統自啟動列表,
# chkconfig –levels 345 mysql on
嗯,以前 MySQL 的時候是 mysqld,現在是 mysql,就差了一個字母 d。
啟動MariaDB
# service mysql start
㈢ MariaDB資料庫的特點是什麼
MariaDB 是一個採用 Maria 存儲引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。
這個項目的很多代碼都改編於 MySQL 6.0,例如 「pool of threads」功能提供解決多數據連接問題。MariaDB 5.1.41 RC可以到這里下載,32位和64位已編譯Linux版本,還包括源代碼包。MariaDB基於GPL 2.0發布。
與 MySQL 相比較,MariaDB 更強的地方在於:
Maria 存儲引擎
PBXT 存儲引擎
XtraDB 存儲引擎
FederatedX 存儲引擎
更快的復制查詢處理
線程池
更少的警告和bug
運行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能測試
數據表消除
慢查詢日誌的擴展統計
支持對 Unicode 的排序
相對於MySQL最新的版本5.6來說,在性能、功能、管理、NoSQL擴展方面,MariaDB包含了更豐富的特性。比如微秒的支持、線程池、子查詢優化、組提交、進度報告等。詳情見列表。
參考:網頁鏈接
㈣ mariadb 二進制日誌在哪
這是一個創建資料庫重復版本的過程。復制過程不僅僅是復制一個資料庫,同時也包括從主節點到一個從節點的更改同步。但這並不意味著從資料庫就是和主資料庫完全相同的副本,因為復制可以配置為只復製表結構、行或者列,這叫做局部復制。復制保證了特定的配置對象在不同的資料庫之間保持一致。 Mariadb 復制概念 備份 :復制可以用來進行資料庫備份。例如,當你做了主->從復制。如果主節點數據丟失(比如硬碟損壞),你可以從從節點中恢復你的資料庫。 擴展 :你可以使用主->從復製作為擴展解決方案。例如,如果你有一些大的資料庫以及SQL查詢,使用復制你可以將這些查詢分離到每個復制節點。寫入操作的SQL應該只在主節點進行,而只讀查詢可以在從節點上進行。 分發解決方案 :你可以用復制來進行分發。例如,你可以將不同的銷售數據分發到不同的資料庫。 故障解決方案 : 假如你建立有主節點->從節點1->從節點2->從節點3的復制結構。你可以為主節點寫腳本監控,如果主節點出故障了,腳本可以快速的將從節點1切換為新的主節點,這樣復制結構變成了主節點->從節點1->從節點2,你的應用可以繼續工作而不會停機。 復制的簡單圖解示範 mysql 復制原理 開始之前,你應該知道什麼是二進制日誌文件以及 Ibdata1。 二進制日誌文件中包括關於資料庫,數據和結構的所有更改的記錄,以及每條語句的執行了多長時間。二進制日誌文件包括一系列日誌文件和一個索引文件。這意味著主要的SQL語句,例如CREATE, ALTER, INSERT, UPDATE 和 DELETE 會放到這個日誌文件中;而例如SELECT這樣的語句就不會被記錄,它們可以被記錄到普通的query.log文件中。 而 Ibdata1 簡單的說據是一個包括所有表和所有資料庫信息的文件。 主伺服器配置 首先升級伺服器 sudo yum install update -y && sudo yum install upgrade -y 我們工作在centos7 伺服器上 sudo cat /etc/redhat-releaseCentOS Linux release 7.0.1406 (Core) 安裝 MariaDB sudo yum install mariadb-server -y 啟動 MariaDB 並啟用隨伺服器啟動 sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service 輸出如下: ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service' 檢查 MariaDB 狀態 sudo service mariadb status 或者使用 sudo systemctl is-active mariadb.service 輸出如下: Redirecting to /bin/systemctl status mariadb.servicemariadb.service - MariaDB database serverLoaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled) 設置 MariaDB 密碼 mysql -u rootmysql> use mysql;mysql> update user set password=PASSWORD("SOME_ROOT_PASSWORD") where User='root';mysql> flush privileges;mysql> exit 這里 SOME_ROOT_PASSWORD 是你的 root 密碼。 例如我用"q"作為密碼,然後嘗試登錄: sudo mysql -u root -pSOME_ROOT_PASSWORD 輸出如下: Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 5Server version: 5.5.41-MariaDB MariaDB ServerCopyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. 輸入 'help;' 或 '\h' 查看幫助信息。 輸入 '\c' 清空當前輸入語句。 讓我們創建包括一些數據的表的資料庫 創建資料庫/模式 sudo mysql -u root -pSOME_ROOT_PASSWORDmysql> create database test_repl; 其中: test_repl - 將要被復制的模式的名字 輸出:如下 Query OK, 1 row affected (0.00 sec) 創建 Persons 表 mysql> use test_repl;CREATE TABLE Persons (PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255)); 輸出如下: mysql> MariaDB [test_repl]> CREATE TABLE Persons (-> PersonID int,-> LastName varchar(255),-> FirstName varchar(255),-> Address varchar(255),-> City varchar(255)-> );Query OK, 0 rows affected (0.01 sec) 插入一些數據 mysql> INSERT INTO Persons VALUES (1, "LastName1", "FirstName1", "Address1", "City1");mysql> INSERT INTO Persons VALUES (2, "LastName2", "FirstName2", "Address2", "City2");mysql> INSERT INTO Persons VALUES (3, "LastName3", "FirstName3", "Address3", "City3");mysql> INSERT INTO Persons VALUES (4, "LastName4", "FirstName4", "Address4", "City4");mysql> INSERT INTO Persons VALUES (5, "LastName5", "FirstName5", "Address5", "City5"); 輸出如下: Query OK, 5 row affected (0.00 sec) 檢查數據 mysql> select * from Persons; 輸出如下: +----------+-----------+------------+----------+-------+ PersonID LastName FirstName Address City +----------+-----------+------------+----------+-------+ 1 LastName1 FirstName1 Address1 City1 1 LastName1 FirstName1 Address1 City1 2 LastName2 FirstName2 Address2 City2 3 LastName3 FirstName3 Address3 City3 4 LastName4 FirstName4 Address4 City4 5 LastName5 FirstName5 Address5 City5 +----------+-----------+------------+----------+-------+
㈤ Mariadb 資料庫Left Join
Mariadb 資料庫Left Join
操作:
1、創建/data目錄
mkdir /data
chmod 777 /data(要給這個目錄至少要附加讀寫許可權)
2、把mariadb服務停掉:
systemctl stop mariadb.service
3、把/var/lib/mysql整個目錄復制到/data
cp -r /var/lib/mysql/*/data/
這樣就把MySQL的數據文檔復制到了/data下
㈥ 怎樣將 MySQL 遷移到 MariaDB 上
:如果是相同的基礎版本(如 5.5),可以直接卸載 MySQL 然後安裝 MariaDB,這樣就可以用了。甚至不需要備份然後還原資料庫。當然,保險起見,升級前將所有的資料庫都備份一下還是非常有必要的,以防萬一。如果 MariaDB 的主版本高
㈦ 安裝了mariadb資料庫怎麼啟動
很多人使用 Maria DB + WordPress 搭建自己的個人博客,但是不知道如何修改 Maria DB 資料庫的密碼。一、 打開 MariaDB 資料庫 。單機 change MariaDB password 二、直接點擊確定 【MariaDB 初始默認密碼為空】三、修改您的ROOT密碼。