MariaDB Centos7 下安裝MariaDB

Centos7 下安裝MariaDBmysql

by:授客 QQ1033553122linux

1、下載安裝文件sql

rpm包爲例,對於標準服務器安裝,至少須要下載clientshared,serve文件(安裝時若是少了,會有錯誤提示的數據庫

 

 



 

2、防止衝突,檢查是否已經安裝了MySQLvim

rpm -qa 'mysql*'centos

 

若有必要,移除已安裝數據庫安全

 

3、安裝bash

[root@localhost mnt]# rpm -ivh MariaDB-*服務器

warning: MariaDB-10.0.19-centos7-x86_64-client.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEYdom

error: Failed dependencies:

    mariadb is obsoleted by MariaDB-client-10.0.19-1.el7.centos.x86_64

    mariadb-libs < 1:10.0.19-1.el7.centos conflicts with MariaDB-common-10.0.19-1.el7.centos.x86_64

    mariadb-libs is obsoleted by MariaDB-shared-10.0.19-1.el7.centos.x86_64

 

解決方法:

[root@localhost mnt]# rpm -iUvh MariaDB-*  #如已經存在相關軟件則更新,無則安裝

 

說明:安裝前確保已安裝了必備軟件包,好比perl

 

4、爲MariaDB root用戶設置密碼

1)啓動mysql服務

[root@localhost mnt]# /usr/sbin/mysqld start

150529  0:26:41 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 2987 ...

150529  0:26:41 [ERROR] Fatal error: Please consult the Knowledge Base to find out how to run mysqld as root!

150529  0:26:41 [ERROR] Aborting

150529  0:26:41 [Note] /usr/sbin/mysqld: Shutdown complete

 

錯誤緣由:

mysql默認拒絕用戶使用root帳戶啓動,由於擁有文件權限的用戶可能致使MySQL Server使用root賬戶建立文件(好比,~root/.bashrc),但root用戶能夠經過在命令後面加上"--user=root"選項來強行啓動mysqld

 

能夠以普通用戶運行mysqld,爲了安全起見,可用特殊的普通用戶mysql,來管理mysql數據庫

 

解決方法一:

[root@localhost mnt]# /usr/sbin/mysqld --user=root

150529  0:37:26 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 3035 ...

150529  0:37:26 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150529  0:37:26 [Note] InnoDB: The InnoDB memory heap is disabled

150529  0:37:26 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150529  0:37:26 [Note] InnoDB: Memory barrier is not used

150529  0:37:26 [Note] InnoDB: Compressed tables use zlib 1.2.7

150529  0:37:26 [Note] InnoDB: Using Linux native AIO

150529  0:37:26 [Note] InnoDB: Using CPU crc32 instructions

150529  0:37:26 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150529  0:37:27 [Note] InnoDB: Completed initialization of buffer pool

150529  0:37:27 [Note] InnoDB: Highest supported file format is Barracuda.

150529  0:37:27 [Note] InnoDB: 128 rollback segment(s) are active.

150529  0:37:27 [Note] InnoDB: Waiting for purge to start

150529  0:37:27 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616717

150529  0:37:27 [Note] Plugin 'FEEDBACK' is disabled.

150529  0:37:27 [Note] Server socket created on IP: '::'.

150529  0:37:27 [Note] Event Scheduler: Loaded 0 events

150529  0:37:27 [Note] /usr/sbin/mysqld: ready for connections.

Version: '10.0.19-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server

 

 

解決方法二:

1)編輯/etc/my.cnf,添加以下內容(意爲mysqld組中的mysql用戶

[root@localhost mnt]# vim /etc/my.cnf

 

#

# This group is read both both by the client and the server

# use it for options that affect everything

#

[client-server]

 

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

[myslqd]

user=mysql

~                                              

注意:這裏的mysql用戶是否是手動建立的,貌似是安裝時默認建立的

 

2)以mysql用戶運行mysqld(比root用戶更安全

[root@localhost ~]# /usr/sbin/mysqld --user=mysql

150531  0:10:22 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 2990 ...

150531  0:10:22 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150531  0:10:22 [Note] InnoDB: The InnoDB memory heap is disabled

150531  0:10:22 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150531  0:10:22 [Note] InnoDB: Memory barrier is not used

150531  0:10:22 [Note] InnoDB: Compressed tables use zlib 1.2.7

150531  0:10:22 [Note] InnoDB: Using Linux native AIO

150531  0:10:22 [Note] InnoDB: Using CPU crc32 instructions

150531  0:10:22 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150531  0:10:22 [Note] InnoDB: Completed initialization of buffer pool

150531  0:10:23 [Note] InnoDB: Highest supported file format is Barracuda.

150531  0:10:23 [Note] InnoDB: 128 rollback segment(s) are active.

150531  0:10:23 [Note] InnoDB: Waiting for purge to start

150531  0:10:23 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616943

150531  0:10:23 [Note] Plugin 'FEEDBACK' is disabled.

150531  0:10:24 [Note] Server socket created on IP: '::'.

150531  0:10:24 [Note] Event Scheduler: Loaded 0 events

150531  0:10:24 [ERROR] mysqld: File './multi-master.info' not found (Errcode: 13 "Permission denied")

150531  0:10:24 [ERROR] Creation of Master_info index file './multi-master.info' failed

150531  0:10:24 [ERROR] Failed to initialize multi master structures

150531  0:10:24 [ERROR] Aborting

 

150531  0:10:24 [Note] InnoDB: FTS optimize thread exiting.

150531  0:10:24 [Note] InnoDB: Starting shutdown...

150531  0:10:25 [Note] InnoDB: Shutdown completed; log sequence number 1616953

150531  0:10:25 [Note] /usr/sbin/mysqld: Shutdown complete

 

如上,出錯了,咋解決?

分析錯誤緣由:無權限在當前目錄下建立multi-master.info

 

解決方法:

[root@localhost ~]# find / -name multi-master.info

/var/lib/mysql/multi-master.info

[root@localhost ~]# cd /var/lib/mysql

 

[root@localhost mysql]# ll

total 110636

-rw-rw----. 1 mysql mysql    16384 May 31 00:10 aria_log.00000001

-rw-rw----. 1 mysql mysql       52 May 31 00:10 aria_log_control

-rw-rw----. 1 mysql mysql 12582912 May 31 00:10 ibdata1

-rw-rw----. 1 mysql mysql 50331648 May 31 00:10 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 May 29 00:18 ib_logfile1

-rw-r-----. 1 mysql root     13342 May 30 23:55 localhost.localdomain.err

-rw-rw----. 1 root  root         0 May 29 00:37 multi-master.info

drwx--x--x. 2 mysql mysql     4096 May 29 00:18 mysql

srwxrwxrwx. 1 mysql mysql        0 May 31 00:10 mysql.sock

drwx------. 2 mysql mysql     4096 May 29 00:18 performance_schema

[root@localhost mysql]# chown mysql:mysql multi-master.info

[root@localhost mysql]# ll

total 110636

-rw-rw----. 1 mysql mysql    16384 May 31 00:10 aria_log.00000001

-rw-rw----. 1 mysql mysql       52 May 31 00:10 aria_log_control

-rw-rw----. 1 mysql mysql 12582912 May 31 00:10 ibdata1

-rw-rw----. 1 mysql mysql 50331648 May 31 00:10 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 May 29 00:18 ib_logfile1

-rw-r-----. 1 mysql root     13342 May 30 23:55 localhost.localdomain.err

-rw-rw----. 1 mysql mysql        0 May 29 00:37 multi-master.info

drwx--x--x. 2 mysql mysql     4096 May 29 00:18 mysql

srwxrwxrwx. 1 mysql mysql        0 May 31 00:10 mysql.sock

drwx------. 2 mysql mysql     4096 May 29 00:18 performance_schema

 

再次驗證,成功了

[root@localhost mysql]# /usr/sbin/mysqld --user=mysql

150531  0:15:53 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 3026 ...

150531  0:15:53 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150531  0:15:53 [Note] InnoDB: The InnoDB memory heap is disabled

150531  0:15:53 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150531  0:15:53 [Note] InnoDB: Memory barrier is not used

150531  0:15:53 [Note] InnoDB: Compressed tables use zlib 1.2.7

150531  0:15:53 [Note] InnoDB: Using Linux native AIO

150531  0:15:53 [Note] InnoDB: Using CPU crc32 instructions

150531  0:15:53 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150531  0:15:53 [Note] InnoDB: Completed initialization of buffer pool

150531  0:15:53 [Note] InnoDB: Highest supported file format is Barracuda.

150531  0:15:53 [Note] InnoDB: 128 rollback segment(s) are active.

150531  0:15:53 [Note] InnoDB: Waiting for purge to start

150531  0:15:54 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616953

150531  0:15:54 [Note] Plugin 'FEEDBACK' is disabled.

150531  0:15:54 [Note] Server socket created on IP: '::'.

150531  0:15:54 [Note] Event Scheduler: Loaded 0 events

150531  0:15:54 [Note] /usr/sbin/mysqld: ready for connections.

Version: '10.0.19-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server

 

5、修改默認用戶的密碼

[root@localhost ~]# /usr/bin/mysqladmin -u root -h localhost.localdomain password 'test1234';

 

也能夠# /usr/bin/mysqladmin -u root password 'new-password'

 

注意:mariadb user表中的root用戶和linuxroot帳戶沒什麼關聯

 

6、移除安裝時建立的測試數據庫和匿名用戶(強烈推薦)

 [root@localhost ~]# /usr/bin/mysql_secure_installation

 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

 

Change the root password? [Y/n] n

 ... skipping.

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] Y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] n

 ... skipping.

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] Y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] Y

 ... Success!

 

Cleaning up...

 

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

 

Thanks for using MariaDB!

[root@localhost ~]#

 

7、關閉數據庫

[root@localhost ~]# mysql -u root -ptest1234

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 5

Server version: 10.0.19-MariaDB MariaDB Server

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

 

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

 

MariaDB [(none)]> shutdown;

Query OK, 0 rows affected (0.01 sec)

 

MariaDB [(none)]>

 

開啓服務的終端可見關閉結果以下

150530 23:45:01 [Note] /usr/sbin/mysqld: Normal shutdown

 

150530 23:45:01 [Note] Event Scheduler: Purging the queue. 0 events

150530 23:45:01 [Note] InnoDB: FTS optimize thread exiting.

150530 23:45:01 [Note] InnoDB: Starting shutdown...

150530 23:45:03 [Note] InnoDB: Shutdown completed; log sequence number 1616867

150530 23:45:03 [Note] /usr/sbin/mysqld: Shutdown complete

 

8、建立用戶與受權

MariaDB [(none)]> create user 'testacc'@'182.168.1.103' identified by 'test1234';

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> grant all on *.* to 'testacc'@'%' identified by 'test1234';

Query OK, 0 rows affected (0.00 sec)

 

[root@localhost ~]# mysql --protocol=tcp -P 3306 -h192.168.1.103 -utestacc -ptest1234

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 10

Server version: 10.0.19-MariaDB MariaDB Server

 

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

 

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

 

MariaDB [(none)]>

MariaDB [(none)]> exit

Bye

 

9、客戶端工具遠程鏈接

 

如上圖,Error No.2003錯誤 Can’t connect to MySQL server on ‘192.168.1.103’

 



解決方法:

# 禁止開機啓動防火牆

[root@localhost ~]# systemctl disable firewalld.service

rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

rm '/etc/systemd/system/basic.target.wants/firewalld.service'

 

# 中止防火牆

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl start firewalld.service

 



 

 

參考鏈接:

https://mariadb.com/kb/en/mariadb/installing-mariadb-with-the-rpm-tool/

相關文章
相關標籤/搜索