1、檢查是否已安裝過mariadb,若有便刪除(linux系統自帶的)
[root@localhost /]# rpm -qa | grep mariadb
[root@localhost /]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2、檢查是否已安裝過mysql,若有便刪除(linux系統自帶的)
1 [root@localhost /]# rpm -qa | grep mysql 2 [root@localhost /]# rpm -e –-nodeps mysql-libs-5.1.52.x86_64
3、解壓MySQL安裝包
最好的安裝路徑是/usr/local/下,如果不是安裝到這個目錄下面,需要修改配置文件。最后再具體簡紹。
tar -zxvf mysql-*.tar.gz 解壓
z : 表示 tar 包是被 gzip 壓縮過的,所以解壓時需要用gunzip 解壓
x : 從 tar 包中把文件提取出來
v : 顯示詳細信息
f xxx.tar.gz : 指定被處理的文件是 xxx.tar.gz
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
解壓目錄內容
bin mysqld服務器,客戶端和實用程序
data 日志文件,數據庫
docs MySQL手冊信息格式
man Unix手冊頁
include 包含(標題)文件
lib 庫
share 其他支持文件,包括錯誤消息,示例配置文件,用於數據庫安裝的SQL
mv mysql-* mysql 重命名
mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
重命名后復制到/usr/local目錄下
cp -r mysql /usr/local
4、檢查mysql組和用戶是否存在,如無創建:
5、更改mysql目錄下所有的目錄及文件夾所屬組合用戶
[root@localhost /]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql/
[root@localhost local]# chmod -R 755 mysql/
6、初始化數據
[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
若報錯,在mysql下添加data目錄
mkdir /usr/local/mysql/data
記錄上面成功安裝后的密碼,如圖所示,后續用到!
在etc下創建my.cnf
1 [mysql] 2 3 # 設置mysql客戶端默認字符集 4 5 default-character-set=utf8 6 7 [mysqld] 8 9 #skip-name-resolve 10 11 # 設置3306端口 12 13 port=3306 14 15 # 設置mysql的安裝目錄 16 17 basedir=/usr/local/mysql 18 19 # 設置mysql數據庫的數據的存放目錄 20 21 datadir=/usr/local/mysql/data 22 23 #datadir=/data/mysql 24 25 # 允許最大連接數 26 27 max_connections=2000 28 29 30 #socket=/var/lib/mysql/mysql.sock 31 32 socket=/tmp/mysql.sock 33 34 35 #log-error=/var/log/mysqld.log 36 37 #pid-file=/var/run/mysqld/mysqld.pid 38 39 40 41 # 服務端使用的字符集默認為8比特編碼的latin1字符集 42 43 character-set-server=utf8 44 45 # 創建新表時將使用的默認存儲引擎 46 47 default-storage-engine=INNODB 48 49 lower_case_table_names=1 50 51 innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM) 52 53 innodb_log_file_size = 256M 54 55 innodb_flush_log_at_trx_commit = 1 # may change to 2 or 0 56 57 innodb_flush_method = O_DIRECT 58 59 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
6、啟動mysql服務
啟動MySQL服務
啟動腳本有兩個分別是:
/usr/local/mysql/bin/mysqld_safe
/usr/local/mysql/support-files/mysql.server(即/etc/init.d/mysqld)
當啟動mysqld時,mysqld_safe同時啟動
mysqld_safe監控mysqld服務,記錄錯誤日志,並在mysqld因故障停止時將其重啟
啟動方式一
bin/mysqld_safe --user=mysql &
啟動方式二(Centos老版本方法)
添加到MySQL 啟動腳本到系統服務
cp support-files/mysql.server /etc/init.d/mysql.server
service mysql.server start(推薦)
或者
/usr/local/mysql/support-files/mysql.server start
設置開機自啟動
1、將服務文件拷貝到init.d下,並重命名為mysql
[root@localhost local]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、賦予可執行權限
[root@localhost local]# chmod +x /etc/init.d/mysqld
3、添加服務
[root@localhost local]# chkconfig --add mysqld
4、顯示服務列表
[root@localhost local]# chkconfig --list
5、重啟服務器
[root@localhost local]# reboot
Centos7開機自啟設置方法(強烈推薦):https://www.cnblogs.com/116970u/p/10974965.html
啟動時,我的系統報錯如下:(提前配置好my.cnf,就不會出現該問題了)
我們修改my.cnf
補充:查看mysql進程
ps -ef | grep mysql
8、登錄Mysql(密碼為初始化密碼)
/usr/local/mysql/bin/mysql -uroot -p
9、修改MySQL密碼
登陸成功后,設置MySQL密碼
mysql> ALTER USER 'root'@'localhost' identified by '你的密碼';
或者
set password=password("你的密碼");
查看mysql.user表中存在哪些帳戶 以及它們的密碼是否為空:
MySQL 5.7.6起,使用這個語句:
1 mysql> SELECT User, Host, HEX(authentication_string) FROM mysql.user;
示例:
1 mysql> SELECT User, Host, HEX(authentication_string) FROM mysql.user; 2 +---------------+-----------+------------------------------------------------------------------------------------+ 3 | User | Host | HEX(authentication_string) | 4 +---------------+-----------+------------------------------------------------------------------------------------+ 5 | root | localhost | 2A39383730334637413534333934344644333831383037373636394637344436303631364442324338 | 6 | mysql.session | localhost | 2A5448495349534E4F544156414C494450415353574F52445448415443414E42455553454448455245 | 7 | mysql.sys | localhost | 2A5448495349534E4F544156414C494450415353574F52445448415443414E42455553454448455245 | 8 +---------------+-----------+------------------------------------------------------------------------------------+
MySQL配置環境變量(推薦)
#編輯 vi /etc/profile
#在文本最后添加系統環境變量
1 #mysql環境變量 2 export PATH=$PATH:/usr/local/mysql/bin
配置后可以直接輸入mysql -uroot -p登錄mysql
保存退出,重新加載
[root@localhost mysql]# source /etc/profile
10、開啟遠程登錄
防火牆開放3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone= public --query-port=3306/tcp
firewall-cmd --zone= public --remove-port=3306/tcp --permanent
以權限用戶root登錄
/usr/local/mysql/bin/mysql -uroot -p
1 mysql> use mysql; 2 mysql> update user set host = '%' where user ='root'; 3 mysql> flush privileges;
說明:
第1行:選擇mysql庫
第2行:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址
第3行:刷新MySQL的系統權限相關表
或者使用此方法:
1 mysql> grant all privileges on *.* to 'root'@'%' identified by '你的密碼' with grant option; 2 mysql> flush privileges;
參考:
https://www.cnblogs.com/fangts/p/8994851.html
https://segmentfault.com/a/1190000010864818?utm_source=tag-newest