目錄
RDBMS : 關係型數據庫 管理系統
NoSQL : 非關係型的
NewSQL : 新型的分佈式解決方案
1、用戶的創建處理原始環境
[root@db01 ~]# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y
[root@db01 ~]# rpm -qa |grep mariadb
[root@db01 ~]# useradd -s /sbin/nologin mysql
MySQL 5.7.26 二進制版本安裝
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
2、下載,上傳文件
[root@db01 ~]# mkdir -p /server/tools
[root@db01 ~]# cd /server/tools/
[root@db01 /server/tools]# yum install -y lrzsz
[root@db01 /server/tools]# ls
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
3、解壓二進制包
[root@db01 /server/tools]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@db01 ~]# mkdir /application
[root@db01 /server/tools]# mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql
基本思路:把軟件存放位置和數據存放位置分開,確保數據安全
4、添加一個磁盤,掛載/data數據
5、創建數據路徑並授權
[root@db01 ~]# mkfs.xfs /dev/sdc
[root@db01 ~]# mkdir /mysql
[root@db01 ~]# blkid
[root@db01 ~]# vim /etc/fstab
[root@db01 ~]# UUID="7d7814c3-1ad2-4622-a435-7086d05d6c55" /mysql xfs defaults 0 0
[root@db01 ~]# mount -a
[root@db01 ~]# df -h
6、設置環境變量
vim /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile
[root@db01 ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
7、Mysql賬號授權相應的文件
授權
chown -R mysql.mysql /application/*
chown -R mysql.mysql /mysql
8、數據庫初始化
5.6 版本 初始化命令 /application/mysql/scripts/mysql_install_db
# 5.7 版本
[root@db01 ~]# mkdir /mysql/mysql/data -p
[root@db01 ~]# chown -R mysql.mysql /mysql
[root@db01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/mysql/mysql/data
說明:
--initialize 參數:
- 1. 對於密碼複雜度進行定製:12位,4種
- 2. 密碼過期時間:180
- 3. 給root@localhost用戶設置臨時密碼
--initialize-insecure 參數:
無限制,無臨時密碼
[root@db01 /data/mysql/data]# \rm -rf /data/mysql/data/*
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/mysql/mysql/data
沒有密碼
9、配置文件的準備
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/mysql/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
10、啓動數據庫
1. sys-v
[root@db01 /etc/init.d]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@db01 /etc/init.d]# service mysqld restart
2. systemd
注意: sysv方式啓動過的話,需要先提前關閉,才能以下方式登錄
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
11、如何分析處理MySQL數據庫無法啓動
without updating PID 類似錯誤
查看日誌:
在哪?
/data/mysql/data/主機名.err
[ERROR] 上下文
可能情況:
/etc/my.cnf 路徑不對等
/tmp/mysql.sock文件修改過 或 刪除過
數據目錄權限不是mysql
參數改錯了
12、管理員密碼的設定(root@localhost)
[root@db01 ~]# mysqladmin -uroot -p password oldboy123
Enter password:
13、管理員用戶密碼忘記了?
--skip-grant-tables #跳過授權表
--skip-networking #跳過遠程登錄
14、啓動數據庫到維護模式
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
登錄並修改密碼
mysql> alter user root@'localhost' identified by '1';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '1';
Query OK, 0 rows affected (0.01 sec)
關閉數據庫,正常啓動驗證