rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs
yum install libaio perl net-tools
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
tar -xvf mysql
rpm安裝
rpm -qa | grep mysql rpm -e --nodeps {-file-name} rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm ps -ef|grep mysql grep 'temporary password' /var/log/mysqld.log set global validate_password_policy=0; set global validate_password_length=1; set password for root@localhost=password('root'); set password = password('root') grant all privileges on *.* to root@'%' identified by 'root'; flush privileges;
修改data目錄,開啟binlog、slowlog
mv /var/lib/mysql /data
mkdir /data/mysql/log
chown mysql:mysql /data/mysql/log
chcon -R -u system_u /data/mysql/log
chcon -Rv -u system_u -t mysqld_db_t /data/mysql
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql
semanage port -a -t mysqld_port_t -p tcp port_number
# grep "/data/mysql" /etc/selinux/targeted/contexts/files/file_contexts.local
/data/mysql(/.*)? system_u:object_r:mysqld_db_t:s0
/data/mysql system_u:object_r:mysqld_db_t:s0
fixfiles restore
vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
port = 3306
default-character-set = utf8mb4
socket=/data/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8mb4
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
############################
## 關閉DNS反向解析
############################
skip-name-resolve
max_allowed_packet = 512M
innodb_log_file_size = 2G
############################
### character set
############################
character-set-server=utf8mb4
collation-server=utf8mb4_bin
##########################
## binlog
###########################
server-id = 6508
###設置日志三種格式:STATEMENT、ROW、MIXED 。
binlog_format = mixed
###設置日志路徑,注意路經需要mysql用戶有權限寫
log-bin = /data/mysql/logs/mysql-bin.log
###設置binlog清理時間
expire_logs_days = 7
###binlog每個日志文件大小
max_binlog_size = 100m
###binlog緩存大小
binlog_cache_size = 4m
###最大binlog緩存大小
max_binlog_cache_size = 512m
##############################
##slowlog
##############################
###設置日志開啟
slow_query_log =1
###設置日志路徑
slow_query_log_file=/data/mysql/logs/mysql-slow.log
###設置超過時長日志記錄
long_query_time = 2
- 查看用戶:cut -d : -f 1 /etc/passwd
- 查看用戶組:cut -d : -f 1 /etc/group
- 刪除xiaoluo這個用戶:userdel -r xiaoluo
要安裝和使用 MySQL 二進制分發,命令序列如下所示:
shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> mkdir mysql-files shell> chown mysql:mysql mysql-files shell> chmod 750 mysql-files shell> bin/mysqld --initialize --user=mysql shell> bin/mysql_ssl_rsa_setup shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server
此過程假定您具有(管理員)對系統的訪問權限。或者,您可以使用 sudo (Linux)或pfexec (Solaris)命令為每個命令添加前綴。root
該目錄提供了一個方便的位置,用作系統變量的值,從而將導入和導出操作限制在特定目錄。請參閱第 5.1.7 節"服務器系統變量"。mysql-files
secure_file_priv
接下來是上述用於安裝二進制分發的說明的更多詳細信息版本。
創建 mysql 用戶和組
如果您的系統還沒有用於運行mysqld 的用戶和組,則可能需要創建它們。以下命令添加組和用戶。您可能希望調用用戶並分組其他內容,而不是 。如果是,請用以下說明中替換相應的名稱。在 Unix/Linux的不同版本中,使用radd和 groupad 的語法可能略有不同,或者它們可能具有不同的名稱,如adduser 和 addgroup。 mysql
mysql
mysql
shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql
由於用戶僅出於所有權目的,而不是出於登錄目的,因此 useradd命令使用 和 選項創建對服務器主機沒有登錄權限的用戶。如果您的使用rad 不支持這些選項,請忽略它們。-r
-s /bin/false
獲取並解包分布
選取要解壓縮分發的目錄,並更改其位置。此處的示例解壓縮下的分配。因此,這些說明假定您有權在 中創建文件和目錄。如果該目錄受到保護,則必須執行安裝為 。/usr/local
/usr/local
root
shell> cd /usr/local
使用第2.1.3 節"如何獲取 MySQL"中的說明獲取分發文件。對於給定版本,所有平台的二進制分發都是從相同的 MySQL 源分發構建的。
解壓縮創建安裝目錄的分發。 tar可以解壓縮和解壓縮分布,如果它有選項支持:z
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
tar命令創建一個名為 的目錄。mysql-
VERSION
-OS
若要從壓縮 tar 文件二進制分發安裝MySQL,系統必須具有 GNU 來解壓縮分發,並具有合理的tar解壓縮器才能解壓縮。如果您的tar程序支持該選項,它可以解壓縮和解壓縮文件。gunzip
z
眾所周知,GNU焦油工作。某些操作系統提供的標准 tar 無法解壓縮 MySQL 發行版中的長文件名。您應該下載並安裝 GNU tar,或者如果可用,請使用預安裝的 GNU tar 版本。通常,這可作為gnutar 、gtar或 GNU 或自由軟件目錄中的焦油提供,例如 或 。GNU焦油可從http://www.gnu.org/software/tar/。/usr/sfw/bin
/usr/local/bin
如果您的tar沒有選項支持,請使用gunzip 解壓縮分發,然后使用tar解包。將前面的tar命令替換為以下替代命令以解壓縮並提取分布:z
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
接下來,創建一個符號鏈接到 tar 創建的安裝目錄:
shell> ln -s full-path-to-mysql-VERSION-OS mysql
該命令創建指向安裝目錄的符號鏈接。這使您可以更輕松地將其引用為 。若要避免在使用 MySQL 時始終鍵入客戶端程序的路徑名稱,可以將目錄添加到變量中:ln
/usr/local/mysql
/usr/local/mysql/bin
PATH
shell> export PATH=$PATH:/usr/local/mysql/bin
執行安裝后設置
安裝過程的其余部分包括設置分發所有權和訪問權限、初始化數據目錄、啟動 MySQL 服務器以及設置配置文件