天天看點

mysql centos 安裝包_centos7 mysql 安裝

rpm介紹

rpm 安裝包:二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包将會由RPM自動編譯、安裝。源代碼包經常以src.rpm作為字尾名

rpm包管理rpm指令管理

rpm包管理yum線上管理

mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝
mysql centos 安裝包_centos7 mysql 安裝

rpm -ivh 包全名 安裝軟體包

rpm-ivh *.rpm --nodeps --force 批量安裝rpm--nodeps 不校驗包的依賴關系安裝--force 忽略軟體包及檔案的沖突安裝

rpm-ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安裝目錄

rpm-ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用來檢查依賴關系;并不是真正的安裝;

rpm-Uvh 包全名 更新軟體包

rpm-e 包名 解除安裝軟體包

rpm-qa | grep httpd  [搜尋指定rpm包是否安裝]--all搜尋*httpd*rpm-ql 包名 列出所有檔案安裝目錄

rpm-qf 檔案名 查詢一個已經安裝的檔案屬于哪個軟體包

注:檔案名所在的絕對路徑要指出

舉例:

[[email protected] RPMS]# rpm-qf /usr/lib/libacl.la

libacl-devel-2.2.23-8rpm-qc 軟體名 檢視一下已安裝軟體的配置檔案

rpm-qc mariadb-libs/etc/my.cnf/etc/my.cnf.d/mysql-clients.cnf

rpm-qd 軟體名 檢視一個已經安裝軟體的文檔安裝位置

rpm-qd mariadb-libs

rpm-qR 軟體名 檢視一下已安裝軟體所依賴的軟體包及檔案

rpm-qR mariadb-lib

mysql安裝

2.使用tar指令解壓

-rw-r--r-- 1 root root 545832960 Dec 19 2019 mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar[[email protected] opt]#mkdirmysql

[[email protected] opt]#tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql

mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm

mysql-community-test-5.7.29-1.el7.x86_64.rpm

mysql-community-embedded-5.7.29-1.el7.x86_64.rpm

mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm

mysql-community-libs-5.7.29-1.el7.x86_64.rpm

mysql-community-client-5.7.29-1.el7.x86_64.rpm

mysql-community-server-5.7.29-1.el7.x86_64.rpm

mysql-community-devel-5.7.29-1.el7.x86_64.rpm

mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm

mysql-community-common-5.7.29-1.el7.x86_64.rpm

3.解除安裝centos7自帶的mariadb

安裝新版mysql前,需将系統自帶的mariadb-lib解除安裝

[[email protected] opt]# rpm -qa |grepmariadb

mariadb-libs-5.5.60-1.el7_5.x86_64

[[email protected] opt]# rpm-qa |grepmariadb

mariadb-libs-5.5.60-1.el7_5.x86_64

[[email protected] opt]# rpm-e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

4.安裝mysql解壓後的rpm包

為了避免出現權限問題,給mysql解壓檔案所在目錄賦予最大權限

chmod 777 mysql

安裝mysql需要的依賴

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel net-tools

按順序安裝解壓的rpm包

rpm -ivh --nodeps mysql-community-common-5.7.29-1.el7.x86_64.rpm

rpm -ivh --nodeps mysql/mysql-community-libs-5.7.29-1.el7.x86_64.rpm

rpm -ivh --nodeps mysql/mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm

rpm -ivh --nodeps mysql/mysql-community-client-5.7.29-1.el7.x86_64.rpm

rpm -ivh --nodeps mysql/mysql-community-server-5.7.29-1.el7.x86_64.rpm

修改配置檔案

vim /etc/my.cnf 新增配置

#跳過登入驗證

skip-grant-tables

#預設資料庫字元集

character_set_server=utf8

#初始連接配接字元集UTF8

init_connect='SET NAMES utf8'

添加使用者

adduser mysql

授權

chown mysql:mysql -R /var/lib/mysql

#初始化資料庫

mysqld --initialize --user=mysql --datadir=/var/lib/mysql

啟動服務 systemctl start mysqld

登入,輸入密碼時直接回車

[[email protected] log]# mysql -u root -p

Enter password:

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

Your MySQL connectionid is 2Server version:5.7.29-log MySQL Community Server (GPL)

Copyright (c)2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

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

mysql>

設定密碼

#設定密碼

mysql> update mysql.user set authentication_string=password('123456') where user='root';

Query OK,1 row affected, 1 warning (0.00sec)

Rows matched:1 Changed: 1 Warnings: 1#立即生效

mysql>flush privileges;

Query OK,0 rows affected (0.01sec)

#開啟遠端登入權限, by後面的就是遠端登入密碼,遠端登入密碼可以和使用者密碼不一樣

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'with grant option;

Query OK,0 rows affected, 1 warning (0.00 sec)

設定密碼政策(該步驟可以跳過)

如果想要設定簡單一點的密碼就要設定密碼政策,否則設定簡單的密碼會出錯

SHOW VARIABLES LIKE 'validate_password%'; #檢視密碼政策

mysql centos 安裝包_centos7 mysql 安裝

1)、validate_password_length  固定密碼的總長度;

2)、validate_password_dictionary_file 指定密碼驗證的檔案路徑;

3)、validate_password_mixed_case_count  整個密碼中至少要包含大/小寫字母的總個數;

4)、validate_password_number_count  整個密碼中至少要包含阿拉伯數字的個數;

5)、validate_password_policy 指定密碼的強度驗證等級,預設為 MEDIUM;

設定密碼的驗證強度等級,設定 validate_password_policy 的全局參數為 LOW

set global validate_password_policy=LOW;

mysql centos 安裝包_centos7 mysql 安裝

隻要設定密碼的長度小于 3 ,都将自動設值為 4

set global validate_password_length=4;

mysql centos 安裝包_centos7 mysql 安裝

停止服務:systemctl stop mysqld,編輯my.cnf配置檔案将:skip-grant-tables這一行注釋掉

重新開機mysql : systemctl start mysqld

執行指令報錯解決方式如下:

MySQL版本5.7.6版本以前使用者可以使用如下指令:

mysql> SET PASSWORD = PASSWORD('123456');

MySQL版本5.7.6版本開始的使用者可以使用如下指令:

mysql>ALTER USER USER() IDENTIFIED BY '123456';

mysql>show databases;

ERROR1820(HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> set password=password('123456');

Query OK,0 rows affected, 1 warning (0.00sec)

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

上面問題原因分析:

MySQL版本5.6.6版本起,添加了password_expired功能,它允許設定使用者的過期時間。這個特性已經添加到mysql.user資料表,但是它的預設值是”N”,可以使用ALTER USER語句來修改這個值。

輸入以下指令,将賬号密碼強制到期:

mysql>ALTER USER 'xiaoming'@'localhost' PASSWORD EXPIRE;

此時,使用者可以登入到MYSQL伺服器,但是在使用者為設定新密碼之前,不能運作任何指令,就會得到上圖的報錯,修改密碼即可正常運作賬戶權限内的所有指令。由于此版本密碼過期天數無法通過指令來實作,是以DBA可以通過cron定時器任務來設定MySQL使用者的密碼過期時間。

MySQL 5.7.4版開始,使用者的密碼過期時間這個特性得以改進,可以通過一個全局變量default_password_lifetime來設定密碼過期的政策,此全局變量可以設定一個全局的自動密碼過期政策。可以在MySQL的my.cnf配置檔案中設定一個預設值,這會使得所有MySQL使用者的密碼過期時間都為120天,MySQL會從啟動時開始計算時間。my.cnf配置如下:

[mysqld]

default_password_lifetime=120

如果要設定密碼永不過期,my.cnf配置如下:

[mysqld]

default_password_lifetime=0

如果要為每個具體的使用者賬戶設定單獨的特定值,可以使用以下指令完成(注意:此指令會覆寫全局政策),機關是“天”,指令如下:

ALTER USER ‘xiaoming’@‘localhost'PASSWORD EXPIRE INTERVAL 250 DAY;

如果讓使用者恢複預設政策,指令如下:

ALTER USER 'xiaoming'@'localhost' PASSWORD EXPIRE DEFAULT;

個别使用者為了後期麻煩,會将密碼過期功能禁用,指令如下:

ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;

開放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

--zone #作用域

--add-port=80/tcp #添加端口,格式為:端口/通訊協定

--permanent #永久生效,沒有此參數重新開機後失效

重新開機防火牆firewall-cmd --reload

設定開機自啟動 : systemctl enable mysqld

檢視服務狀态: systemctl status mysqld

常用指令:

show databases;檢視所有的資料庫

status 檢視mysql資料庫的運作狀态

show tables 檢視資料庫中的表

desc table_name;檢視表結構

show full processlist;#查詢資料庫連接配接

show status like'%Max_used_connections%';

show status like'%Threads_connected%';#目前連接配接數

show status like'%table_lock%';#表鎖定

show status like'innodb_row_lock%';#行鎖定

show status like'%qcache%'; #查詢緩存情況

show variables like"%query_cache%";

SHOW STATUS LIKE'Qcache%';

show variables like"%binlog%";

show status like'Aborted_clients';#由于客戶沒有正确關閉連接配接已經死掉,已經放棄的連接配接數量

show variables like'%max_connections%';//檢視最大連接配接數量

show variables like '%timeout%';#檢視逾時時間

show variables like'log_%'; #檢視日志是否啟動

shell腳本一鍵安裝:

#! /bin/bashtar xf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql/

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel net-tools

rpm-qa | grepmariadbyum -y remove mariadb-libs

rpm-ivh --nodeps mysql/mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm-ivh --nodeps mysql/mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm-ivh --nodeps mysql/mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm

rpm-ivh --nodeps mysql/mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm-ivh --nodeps mysql/mysql-community-server-5.7.26-1.el7.x86_64.rpm

systemctl start mysqld

systemctl enable mysqld

systemctl status mysqld

#! /bin/bash

rpm-Uvh mysql/*.rpm --nodeps --force

service mysqld start

sleep 10

result=`grep "new password" /var/log/mysqld.log |awk '{print $NF}'`

p1="`echo $result |awk '{print $NF}'`"

echo "password:$p1"

if [ "$p1" == "" ]; then

result=`grep "temporary password" /var/log/mysqld.log |awk '{print $NF}'`

p1="`echo $result |awk '{print $NF}'`"

fi

echo "password:$p1"

mysql -uroot -p$p1 --connect-expired-password -D mysql <

SET GLOBAL innodb_flush_log_at_trx_commit =0;

set global validate_password_policy=0;

set global validate_password_length=1;

set global time_zone = '+8:00';

create database if not exists \`test\` default character set utf8 default collate utf8_general_ci;

EOF

echo "new password 123456" >> /var/log/mysqld.log

sleep 10

mysql -uroot -p$p1 --connect-expired-password -D mysql <

alter user 'root'@'localhost' identified by '123456';

update mysql.user set authentication_string=password('123456') where user='root' and host='localhost';

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

GRANT ALL ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456';

flush privileges;

use test;

source /opt/mysql/test.sql;

EOF

sleep 10