0.版本說明
環(huán)境:centos7.9
版本:mysql-8.0.19
1.查詢所有Mysql對應的文件夾
查詢命令如下:
whereis mysqlm
find / -name mysql
如果查到相關目錄或文件,刪除
rm -rf xxxxx
重復執(zhí)行第一步,驗證是否刪除完畢
2.檢查mysql用戶組和用戶是否存在
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
如果沒有,則創(chuàng)建
groupadd mysql
useradd -r -g mysql mysql
再次驗證
[root@localhost /]# cat /etc/group | grep mysql
mysql:x:1000:
[root@localhost /]# cat /etc/passwd |grep mysql
mysql:x:997:1000::/home/mysql:/bin/bash
3.安裝
3.1.解壓Mysql安裝包
cd /opt/software
tar -Jxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
3.2.將解壓的文件夾移動到/opt目錄下,并重命名為/mysql
mv /opt/software/mysql-8.0.19-linux-glibc2.12-x86_64 /opt/mysql
3.3.在/opt/mysql目錄下新建/data文件夾和/logs文件夾和/pid文件夾
mkdir /opt/mysql/data
mkdir /opt/mysql/logs
mkdir /opt/mysql/pid
3.4.創(chuàng)建相應的文件
touch /opt/mysql/logs/mysql.log
touch /opt/mysql/pid/mysql.pid
3.5.更改mysql目錄下所有的目錄及文件夾所屬的用戶組和用戶,以及權限
chown -R mysql:mysql /opt/mysql
chmod -R 755 /opt/mysql
chown -R mysql:mysql /opt/mysql/data
chmod -R 755 /opt/mysql/data
chown -R mysql:mysql /opt/mysql/logs
chmod -R 755 /opt/mysql/logs
chown -R mysql:mysql /opt/mysql/pid
chmod -R 755 /opt/mysql/pid
3.6.修改/opt/mysql/support-files/mysql.server中/usr/local/mysql改為/opt/mysql
4.配置my.cnf
/ect/my.cnf文件內(nèi)容如下,可直接復制覆蓋
[mysqld_safe]
log-error =/opt/mysql/logs/mysql.log
pid-file = /opt/mysql/pid/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /opt/mysql/data/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
socket = /opt/mysql/data/mysql.sock
# 設置mysql的安裝目錄
basedir = /opt/mysql
# 設置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir = /opt/mysql/data
log-bin = /opt/mysql/logs/mysql-bin
innodb_data_home_dir =/opt/mysql/data
innodb_log_group_home_dir = /opt/mysql/logs
#設置mysql數(shù)據(jù)庫的日志及進程數(shù)據(jù)的存放目錄
log-error =/opt/mysql/logs/mysql.log
pid-file = /opt/mysql/pid/mysql.pid
# 服務端使用的字符集默認為8比特編碼
character-set-server = utf8mb4
lower_case_table_names= 1
autocommit = 1
skip-name-resolve
##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 20M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 創(chuàng)建新表時將使用的默認存儲引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
5.初始化Mysql
5.1.檢查服務器上有沒有這個libaio庫
檢查命令如下
rpm -qa|grep libaio
如果沒有,安裝,命令如下
yum install libaio-devel.x86_64
5.2.初始化mysql
cd /opt/mysql/bin
./mysqld --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql --initialize
5.3.在/opt/mysql/logs/mysql.log文件中找到初始密碼,復制出來
A temporary password is generated for root@localhost: Dior*60,SRXp
6.啟動Mysql
6.1.啟動命令
cd /opt/mysql/bin
./mysqld_safe &
6.2.查看MySql進程,確認是否啟動成功
ps -ef|grep mysqld
6.3.進入mysql
./mysql -u root -p
Enter password: #此處輸入之前從mysql.log中獲取的密碼
6.4.修改root密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY 'root賬號新密碼';
mysql> flush privileges; #刷新權限
6.5.開放遠程連接
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
7.創(chuàng)建readonly只讀用戶
7.1.創(chuàng)建一個名叫readonly的用戶
mysql> CREATE USER 'readonly'@'localhost' IDENTIFIED BY '設置賬號密碼';
7.2.為 readonly 用戶設置只讀的權限
mysql> GRANT SELECT ON *.* TO 'readonly'@'localhost';
mysql> flush privileges;
以下補充,賦予全部權限的方法
mysql> GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost';
mysql> flush privileges;
7.3.檢查readonly 用戶的權限
mysql> SHOW GRANTS FOR 'readonly'@'localhost';
+-----------------------------------------------+
| Grants for readonly@localhost |
+-----------------------------------------------+
| GRANT SELECT ON *.* TO `readonly`@`localhost` |
+-----------------------------------------------+
1 row in set (0.00 sec)
7.4.開放遠程連接
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='readonly';
mysql> flush privileges;
8.創(chuàng)建開機自啟動mysql服務
8.1.將服務文件拷貝到init.d下,并重命名為mysqld
cd /opt/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
8.2.賦予可執(zhí)行權限
chmod +x /etc/rc.d/init.d/mysqld
8.3.修改mysqld.service文件
位置:/usr/lib/systemd/system/mysqld.service,如果文件不存在,需要創(chuàng)建,內(nèi)容如下
[Unit]
Description=MySQL Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
ExecStart=/opt/mysql/bin/mysqld $MYSQLD_OPTS
PrivateTmp=false
8.4.設置開機啟動
systemctl enable mysqld.service
8.5.相關命令如下
service mysqld start
service mysqld stop
service mysqld restart
service mysqld reload
9.結束語
本篇只記錄自己的學習過程,更好的提升自己