1. 程式人生 > >centos7用瑪利亞mariadb資料庫遇到的所有問題搜了一堆...

centos7用瑪利亞mariadb資料庫遇到的所有問題搜了一堆...

安裝mysql的作者另起爐灶的開源版本:maria DB

(maria DB如同 MySQL 的影子版本,瑪莉亞資料庫是 MySQL 的一個分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全相容)。

1.安裝:

yum install -y mariadb-server

2.啟動maria DB服務:

systemctl start mariadb.service

(說明:CentOS 7.x開始,CentOS開始使用systemd服務來代替daemon,原來管理系統啟動和管理系統服務的相關命令全部由systemctl命令來代替。)

3.新增至開機自啟動:

systemctl enable mariadb.service

centos7自帶資料庫MariaDB重啟和修改密碼

1:MariaDB和mysql差不多是mysql的一個分支,完全相容mysql的命令。

2:centos 7 中自帶MariaDB, 需要在centos中安裝mysql的時候就需要多注意了。

3:啟動 停止 重啟 MariaDB

      systemctl start mariadb.service #啟動MariaDB

      systemctl stop mariadb.service #停止MariaDB
      systemctl restart mariadb.service #重啟MariaDB
      systemctl enable mariadb.service #設定開機啟動

4:如果忘記了MariaDB root密碼怎麼辦呢?

    1. KILL掉系統裡的MySQL程序;

    2. 用以下命令啟動MySQL,以不檢查許可權的方式啟動;

    mysqld_safe -skip-grant-tables &

 

    或是
    
    修改/etc/my.cnf檔案,在[mysqld]下新增 skip-grant-tables , 再啟動mysql

    3. 然後用空密碼方式使用root使用者登入 MySQL;

    mysql -u root

    4. 修改root使用者的密碼;

    mysql> update mysql.user set password=PASSWORD('新密碼') where User='root'
    mysql> flush privileges;
    mysql> quit

    5. 重新啟動MySQL,就可以使用新密碼登入了。

    6. 改完密碼別忘記刪除配置檔案中的 skip-grant-tables

5:普通修改MariaDB的密碼,則和上一步一樣,不用修改配置檔案,登入MySQL 就行

6:普通重啟mysql和啟動mysql

   啟動: /usr/local/mysql/bin/mysqld_safe -user=mysql &

   停止:/usr/local/mysql/bin/mysqladmin -uroot -p shutdown

 

簡單配置

安裝完成MariaDB,首先啟動MariaDB,兩條命令都可以

systemctl start mariadb

#service mariadb start

設定開機啟動

systemctl enable mariadb

#chkconfig mariadb on

接下來進行MariaDB的相關簡單配置

mysql_secure_installation

首先是設定密碼,會提示先輸入密碼

Enter current password for root (enter for none):<–初次執行直接回車

設定密碼

Set root password? [Y/n] <– 是否設定root使用者密碼,輸入y並回車或直接回車
New password: <– 設定root使用者的密碼
Re-enter new password: <– 再輸入一次你設定的密碼

其他配置

Remove anonymous users? [Y/n] <– 是否刪除匿名使用者,回車

Disallow root login remotely? [Y/n] <–是否禁止root遠端登入,回車,

Remove test database and access to it? [Y/n] <– 是否刪除test資料庫,回車

Reload privilege tables now? [Y/n] <– 是否重新載入許可權表,回車

初始化MariaDB完成,接下來測試登入

mysql -uroot -ppassword

完成。

 

2、配置MariaDB的字符集

檔案/etc/my.cnf

vi /etc/my.cnf

在[mysqld]標籤下新增

init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake

檔案/etc/my.cnf.d/client.cnf

vi /etc/my.cnf.d/client.cnf

在[client]中新增

default-character-set=utf8

檔案/etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

在[mysql]中新增

default-character-set=utf8

 全部配置完成,重啟mariadb

systemctl restart mariadb

之後進入MariaDB檢視字符集

mysql> show variables like "%character%";show variables like "%collation%";

顯示為


+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client    | utf8                      |
| character_set_connection | utf8                      |
| character_set_database  | utf8                      |
| character_set_filesystem | binary                    |
| character_set_results    | utf8                      |
| character_set_server    | utf8                      |
| character_set_system    | utf8                      |
| character_sets_dir      | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value          |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database  | utf8_unicode_ci |
| collation_server    | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

字符集配置完成。

 

3、新增使用者,設定許可權

建立使用者命令

mysql>create user [email protected] identified by 'password';

直接建立使用者並授權的命令

mysql>grant all on *.* to [email protected] indentified by 'password';

授予外網登陸許可權 

mysql>grant all privileges on *.* to [email protected]'%' identified by 'password';

授予許可權並且可以授權

mysql>grant all privileges on *.* to [email protected]'hostname' identified by 'password' with grant option;

簡單的使用者和許可權配置基本就這樣了。

其中只授予部分許可權把 其中 all privileges或者all改為select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file其中一部分。

Linux系統教程:如何檢查MariaDB服務端版本  http://www.linuxidc.com/Linux/2015-08/122382.htm

MariaDB Proxy讀寫分離的實現 http://www.linuxidc.com/Linux/2014-05/101306.htm

Linux下編譯安裝配置MariaDB資料庫的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm

CentOS系統使用yum安裝MariaDB資料庫 http://www.linuxidc.com/Linux/2014-11/109048.htm

安裝MariaDB與MySQL並存 http://www.linuxidc.com/Linux/2014-11/109047.htm

Ubuntu 上如何將 MySQL 5.5 資料庫遷移到 MariaDB 10  http://www.linuxidc.com/Linux/2014-11/109471.htm

[翻譯]Ubuntu 14.04 (Trusty) Server 安裝 MariaDB  http://www.linuxidc.com/Linux/2014-12/110048htm

MariaDB 的詳細介紹請點這裡
MariaDB 的下載地址請點這裡

 

使用以下命令列刪除賬戶:

delete from user where user='賬戶名';
1
出現:

 ERROR 1046 (3D000): No database selected
1
因為是直接使用 SQL 語句的方式來刪除賬戶,所以必須先選擇 mysql 自身的資料庫:

use mysql;
--------------------- 
作者:deniro_li 
來源:CSDN 
原文:https://blog.csdn.net/deniro_li/article/details/79526754 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

 

mysql遠端連線 Host * is not allowed to connect to this MySQL server

2018年07月31日 14:36:22 希望之光芒 閱讀數:714更多

個人分類: mysql

在本機登入mysql後,更改"mysql"資料庫裡的"user"表裡的"host"項,從"localhost"改為'%'。

程式碼如下         

mysql>

mysql>use mysql;

mysql>select 'host' from user where user='root';

#檢視mysql庫中的user表的host值(即可進行連線訪問的主機/IP名稱)

 

先說說這個錯誤,其實就是我們的MySQL不允許遠端登入,所以遠端登入失敗了,解決方法如下:

  1. 在裝有MySQL的機器上登入MySQL mysql -u root -p密碼
  2. 執行use mysql;
  3. 執行update user set host = '%' where user = 'root';這一句執行完可能會報錯,不用管它。
  4. 執行FLUSH PRIVILEGES;

    經過上面4步,就可以解決這個問題了。 
    注: 第四步是重新整理MySQL的許可權相關表,一定不要忘了,我第一次的時候沒有執行第四步,結果一直不成功,最後才找到這個原因。