實踐:Linux下安裝mysql8.0

哈哈哈hh發表於2022-03-07

映象下載、域名解析、時間同步請點選  阿里雲開源映象站

一、下載mysql8.0安裝包

1、在local建立mysql資料夾

cd /usr/local
mkdir mysql
cd mysql

2、使用wget下載mysql8.0的xz安裝包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

二、解壓mysql8.0安裝包

1、解壓

tar -xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

2、重新命名解壓後的mysql資料夾(名字太長了)

mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql8.0

3、建立data儲存檔案

cd mysql8.0
mkdir data

三、建立使用者和使用者組,並賦予許可權

1、建立使用者和使用者組

groupadd mysql
 
useradd -g mysql mysql

2、給使用者賦予許可權

chown -R mysql.mysql /usr/local/mysql/mysql8.0

四、初始化mysql資訊

1、切換到mysql8.0安裝路徑下

Tip:絕對路徑:cd /usr/local/mysql/mysql8.0/bin

cd bin

2、初始化mysql基本資訊

./mysqld --user=mysql --basedir=/usr/local/mysql/mysql8.0 --datadir=/usr/local/mysql/mysql8.0/data/ --initialize

3、獲取到臨時mysql密碼

file

五、新增mysqld服務到系統

1、將mysqld服務新增到系統中

cd /usr/local/mysql/mysql8.0
cp -a ./support-files/mysql.server /etc/init.d/mysql

2、授權以及新增服務

chmod +x /etc/init.d/mysql
chkconfig --add mysql

3、mysql5.7以後就沒有my.cnf了,所以我們建立一個。(個人覺得方便一些)

sudo vim my.cnf

# Example MySQL config file for small systems.  
#  
# This is for a system with little memory (<= 64M) where MySQL is only used  
# from time to time and it's important that the mysqld daemon  
# doesn't use much resources.  
#  
# MySQL programs look for option files in a set of  
# locations which depend on the deployment platform.  
# You can copy this option file to one of those  
# locations. For information about these locations, see:  
# http://dev.mysql.com/doc/mysql/en/option-files.html  
#  
# In this file, you can use all long options that a program supports.  
# If you want to know which options a program supports, run the program  
# with the "--help" option.  
 
# The following options will be passed to all MySQL clients  
[client]  
default-character-set=utf8  
#password   = k0Ui&wV(Z3yt
port        = 3306 
socket      = /tmp/mysql.sock  
 
# Here follows entries for some specific programs  
 
# The MySQL server   
[mysqld]  
 
#配置mysql的資料夾 和 mysql data目錄
basedir=/usr/local/mysql/mysql8.0
datadir=/usr/local/mysql/mysql8.0/data
default-storage-engine=INNODB  
character-set-server=utf8  
collation-server=utf8_general_ci  
port        = 3306 
socket      = /tmp/mysql.sock  
skip-external-locking  
key_buffer_size = 16K  
max_allowed_packet = 1M  
table_open_cache = 4 
sort_buffer_size = 64K  
read_buffer_size = 256K  
read_rnd_buffer_size = 256K  
net_buffer_length = 2K  
thread_stack = 128K  
 
# Don't listen on a TCP/IP port at all. This can be a security enhancement,  
# if all processes that need to connect to mysqld run on the same host.  
# All interaction with mysqld must be made via Unix sockets or named pipes.  
# Note that using this option without enabling named pipes on Windows  
# (using the "enable-named-pipe" option) will render mysqld useless!  
#   
#skip-networking  
server-id   = 1 
 
# Uncomment the following if you want to log updates  
#log-bin=mysql-bin  
 
# binary logging format - mixed recommended  
#binlog_format=mixed  
 
# Causes updates to non-transactional engines using statement format to be  
# written directly to binary log. Before using this option make sure that  
# there are no dependencies between transactional and non-transactional  
# tables such as in the statement INSERT INTO t_myisam SELECT * FROM  
# t_innodb; otherwise, slaves may diverge from the master.  
#binlog_direct_non_transactional_updates=TRUE  
 
# Uncomment the following if you are using InnoDB tables  
#innodb_data_home_dir = /usr/local/mysql/data  
#innodb_data_file_path = ibdata1:10M:autoextend  
#innodb_log_group_home_dir = /usr/local/mysql/data  
# You can set .._buffer_pool_size up to 50 - 80 %  
# of RAM but beware of setting memory usage too high  
#innodb_buffer_pool_size = 16M  
#innodb_additional_mem_pool_size = 2M  
# Set .._log_file_size to 25 % of buffer pool size  
#innodb_log_file_size = 5M  
#innodb_log_buffer_size = 8M  
#innodb_flush_log_at_trx_commit = 1 
#innodb_lock_wait_timeout = 50 
 
[mysqldump]  
quick  
max_allowed_packet = 16M  
 
[mysql]  
no-auto-rehash  
# Remove the next comment character if you are not familiar with SQL  
#safe-updates  
 
[myisamchk]  
key_buffer_size = 8M  
sort_buffer_size = 8M  
 
[mysqlhotcopy]  
interactive-timeout

*設定my.cnf許可權

sudo chmod 664 /etc/my.cnf

4、啟動mysql服務

service mysql start

如果出現下面報錯

file

解決

將/var/lock/subsys/下mysql檔案刪除

5、檢視mysql服務狀態

service mysql status

6、將mysql命令新增到服務

ln -s /usr/local/mysql/mysql8.0/bin/mysql /usr/bin

六、登入mysql

1、登入 密碼使用之前隨機生成的密碼

mysql mysql -uroot -p

file

2、修改管理員密碼 其中123456是新的密碼自己設定

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

file

3、重新載入快取,使密碼生效

flush privileges;

4、退出mysql,用新密碼嘗試登入管理員

七、修改mysql配置,使其可以用工具遠端登入

update user set host=’%’ where user=‘root’;

flush privileges;

雲伺服器不能遠端連線mysql,解決

如果是買的雲伺服器,例如:阿里雲伺服器的,請到設定mysql(3306)安全策略

file

總結

到此就已經完成了在Linux中mysql8.0的所有安裝。希望對大家有所幫助。

本文轉自:https://blog.csdn.net/qq_45554167/article/details/121907007


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2865510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章