說明: 首先必須能鏈接外網(wǎng). 如果不能直接訪問,那也可以設(shè)置代理,請(qǐng)參考: 在內(nèi)網(wǎng)機(jī)器上設(shè)置yum代理
目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、淶水網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
使用 yum 的權(quán)限要求是 root 用戶,如果你不是,那么可以需要 在 shell命令之前加上 sudo, 或者 su root 切換到 super 管理員進(jìn)行操作. 并可能需要輸入密碼.
1. 添加 yum 數(shù)據(jù)源;
建議命名為 MariaDB.repo 類似的名字:
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
cd /etc/yum.repos.d/
vim /etc/yum.repos.d/MariaDB.repo
然后,寫入文件內(nèi)容:(建議使用 10.0)
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
# MariaDB 10.0 CentOS repository list - created 2015-08-12 10:59 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
該文件的內(nèi)容是參考官網(wǎng),并從官網(wǎng)上生成的,設(shè)置安裝源倉庫的 具體的地址為: https://downloads.mariadb.org/mariadb/repositories/
選擇好操作系統(tǒng)版本之后既可以查看,其他操作系統(tǒng)的安裝源也可以在此處查看并設(shè)置。
如果服務(wù)器不支持https協(xié)議,或者gpgkey 保錯(cuò),確保沒問題的話,可以將 gpgcheck=1 修改為 gpgcheck=0,則不進(jìn)行校驗(yàn).
我的示例:
[root@localhost ~]# cat /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.1 CentOS repository list - created 2017-04-05 08:04 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
2. 安裝數(shù)據(jù)庫
# yum remove MariaDB-server MariaDB-client
yum -y install MariaDB-server MariaDB-client
如果要?jiǎng)h除舊的數(shù)據(jù)庫可以使用remove, 參數(shù) -y 是確認(rèn),不用提示。此處,安裝的是服務(wù)器和客戶端,一般來說安裝這兩個(gè)就可以了。
3. 啟動(dòng)數(shù)據(jù)庫
如果不用進(jìn)行其他的操作,則現(xiàn)在就可以直接啟動(dòng)數(shù)據(jù)庫,并進(jìn)行測(cè)試了。
# 查看MySQL狀態(tài);關(guān)閉數(shù)據(jù)庫
# service mysql status
# service mysql stop
# 啟動(dòng)數(shù)據(jù)庫
service mysql start
4. 修改root密碼
# 修改root密碼
mysqladmin -u root password 'root'
因?yàn)榘惭b好以后的root密碼是空,所以需要設(shè)置; 如果是測(cè)試服務(wù)器,那么你可以直接使用root,不重要的密碼很多時(shí)候可以設(shè)置為和用戶名一致,以免忘記了又想不起來。
如果是重要的服務(wù)器,請(qǐng)使用復(fù)雜密碼,例如郵箱,各種自由組合的規(guī)則的字符等。
我的示例:
[root@localhost ~]# service mysql start
Starting MySQL.170405 17:20:34 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'.
170405 17:20:34 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
[ OK ]
root@localhost ~]# ps aux|grep mysq
root 8824 0.0 0.0 11436 1564 pts/0 S 17:20 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/localhost.localdomain.pid
mysql 8898 1.1 1.6 824048 134948 pts/0 Sl 17:20 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/localhost.localdomain.err --pid-file=/var/lib/mysql/localhost.localdomain.pid
5. 登錄數(shù)據(jù)庫
mysql -u root -p
如果是本機(jī),那可以直接使用上面的命令登錄,當(dāng)然,需要輸入密碼. 如果是其他機(jī)器,那么可能需要如下的形式:
mysql -h 127.0.0.1 -P 3306 -u root -p
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.22-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB [(none)]> show variables like 'innodb_file_per%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
6. 簡單SQL測(cè)試
-- 查看MySQL的狀態(tài)
status;
-- 顯示支持的引擎
show engines;
-- 顯示所有數(shù)據(jù)庫
show databases;
-- 切換數(shù)據(jù)庫上下文,即設(shè)置當(dāng)前會(huì)話的默認(rèn)數(shù)據(jù)庫
use test;
-- 顯示本數(shù)據(jù)庫所有的表
show tables;
-- 創(chuàng)建一個(gè)表
CREATE TABLE t_test (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
userId char(36),
lastLoginTime timestamp,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入測(cè)試數(shù)據(jù)
insert into t_test(userId)
values
('admin')
,('haha')
;
-- 簡單查詢
select * from t_test;
select id,userId from t_test where userId='admin' ;
7. 修改數(shù)據(jù)存放目錄
mysql, MariaDB 的默認(rèn)數(shù)據(jù)存放在 /var/lib/mysql/ 目錄下,如果不想放到此處,或者是想要程序和數(shù)據(jù)分離,或者是磁盤原因,
需要切換到其他路徑,則可以通過修改 datadir系統(tǒng)變量來達(dá)成目的.
# 停止數(shù)據(jù)庫
[root@localhost ~]# service mysql stop
Shutting down MySQL... [ OK ]
# 創(chuàng)建目錄,假設(shè)沒有的話
[root@localhost ~] # mkdir -p /data/mysql
#設(shè)置權(quán)限
[root@localhost ~]# chown -R mysql:mysql /data/
[root@localhost ~]# ll /data/
total 4
drwxr-xr-x 5 mysql mysql 4096 Apr 5 17:50 mysql
# 按下面的命令重新初始化數(shù)據(jù)庫
[root@localhost ~]# /usr/bin/mysql_install_db --defaults-file=/etc/my.cnf.d/server.cnf --datadir=/data/mysql --user=mysql
# 查看/data/mysql下面的是否生成數(shù)據(jù)
[root@localhost ~]# ls /data/mysql/
aria_log.00000001 bogon.err ib_logfile0 localhost.localdomain.err performance_schema
aria_log_control ibdata1 ib_logfile1 mysql test
# 其實(shí)查看 /etc/my.cnf 文件可以發(fā)現(xiàn)
# MariaDB 的此文件之中只有一個(gè)包含語句
# 所以需要修改的配置文件為 /etc/my.cnf.d/server.cnf
cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf_original
vim /etc/my.cnf.d/server.cnf
然后 按 i 進(jìn)入編輯模式,可以插入相關(guān)內(nèi)容.使用鍵盤的上下左右鍵可以移動(dòng)光標(biāo), 編輯完成以后,按 ESC 退出編輯模式(進(jìn)入命令模式), 然后輸入命令:wq 保存并退出
我的示例:
[root@localhost ~]# cat /etc/my.cnf.d/server.cnf
#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#
# this is read by the standalone daemon and embedded servers
[server]
# this is only for the mysqld standalone daemon
[mysqld]
datadir=/data/mysql #設(shè)置/data/mysql為新文件的數(shù)據(jù)目錄
socket=/var/lib/mysql/mysql.sock
#
# * Galera-related settings
#
[galera]
# Mandatory settings
#wsrep_on=ON
#wsrep_provider=
#wsrep_cluster_address=
#binlog_format=row
#default_storage_engine=InnoDB
#innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
# this is only for embedded server
[embedded]
# This group is only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]
# This group is only read by MariaDB-10.1 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mariadb-10.1]
#重啟MySQL
[root@localhost ~]# service mysql start
Starting MySQL.170405 17:50:20 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
170405 17:50:20 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[ OK ]
提示:
/usr/bin/mysqld_safe_helper: Can't create/write to file '/data/mysql/bogon.err' (Errcode: 13 "Permission denied")
ERROR!
害苦了我,多方查找才發(fā)selinx開啟這呢,果斷禁用,然后重啟操作系統(tǒng):OK?。?!
vim /etc/sysconfig/selinux
SELINUX=disabled
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.22-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
7.1 創(chuàng)建慢查詢?nèi)罩疚募?/p>
既然上面指定了慢查詢?nèi)罩疚募液髞砜戳讼翸ariaDB的err日志,發(fā)現(xiàn)MariaDB不會(huì)自己創(chuàng)建該文件,所以我們需要自己創(chuàng)建,并修改相應(yīng)的文件權(quán)限(比如 MySQL 采用 mysql用戶,可能我們使用 root用戶創(chuàng)建的文件,此時(shí)要求慢查詢?nèi)罩疚募?duì)mysql用戶可讀可寫就行。)
touch /usr/local/ieternal/mysql_data/slow_query_log.log
chmod 666 /usr/local/ieternal/mysql_data/slow_query_log.log
然后重新啟動(dòng)MySQL.
service mysql start
8、mysql初始設(shè)置
1、刪除匿名用戶
mysql> delete from mysql.user where user='';
2、設(shè)置root密碼
1)、
mysqladmin -u root password "newpass"
2)、
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
3)、
mysql> UPDATE mysql.user SET Password = PASSWORD('db@pass123') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
4)、在丟失root密碼的時(shí)候,可以這樣
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> grant all on *.* to pancou@'%' identified by 'pancou';