記centos 安裝 mysql5.7.23.tar.gz教程


1、下載tar包,這里使用wget從官網下載

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

2、將mysql安裝到/usr/local/mysql下

# 解壓

tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

# 移動

mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/

# 重命名

mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

3、新建data目錄

mkdir /usr/local/mysql/data

4、新建mysql用戶、mysql用戶組

# mysql用戶組

groupadd mysql

# mysql用戶

useradd mysql -g mysql

5、將/usr/local/mysql的所有者及所屬組改為mysql

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

6,初始化

cd /usr/local/mysql

[root@dbserver mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化后會生成一串臨時密碼,作為首次登陸密碼

 

# 如果出現以下錯誤:

/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

# 則執行以下命令:

yum -y install numactl

# 完成后繼續安裝:

/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

 

 

7、配置my.cnf

 

接下來進入/usr/local/mysql/support-files/目錄下 
查看是否存在my-default.cnf文件,如果存在直接copy到/etc/my.cnf文件中

    [root@dbserver mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
  • 1

如果不存在my-default.cnf文件,則在/etc/目錄下創建my.cnf,並寫入以下內容,例如我的是這樣的:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql.sock #找到sock文件的實際位置

log-error=/var/log/mysqld.log  

pid-file=/usr/local/mysql/data/mysql.pid   #  找到pid的實際位置

<3>獲取初始登錄密碼

這個的初始登錄密碼將不會在執行第二步之后被輸出到命令行中,而是會被存放在錯誤日志中。錯誤日志路徑就是你在my.cnf中配置的 log-error=/var/log/mysqld.log

執行:

cat /var/log/mysqld.log

能夠看到一行信息,例如我的是:

 

2017-11-29T01:55:23.192210Z 1 [Note] A temporary password is generated for root@localhost: Q5Sck93kdK/*

localhost: 后面的一串就是你mysql登錄的初始密碼。

⚠️如果你的初始密碼丟失,可以備份data數據:mv /usr/local/mysql/data data.bak 或者直接刪除data數據:rm -rf /usr/local/mysql/data 然后初始化數據庫:

[root@dbserver mysql]# bin/mysqld --initialize --user=mysql 重新生成初始密碼然后查看並記住。此處還有其他的方法,大家可以嘗試一下,參考:http://blog.csdn.net/ljbmxsm/article/details/50612777 

 

8、把mysql放到本地系統服務中

命令: cp -a ./support-files/mysql.server /etc/init.d/mysqld

如果mysql 安裝目錄不在、usr/local/mysql下需要修改mysql的配置文件 如:本人的安裝目錄是在/software/mysql下則配置如下

修改Mysql配置文件

#vim /usr/local/mysql/support-files/mysql.server
修改前

if test -z "$basedir"
then
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/usr/local/mysql/data
fi
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi

修改后

if test -z "$basedir"
then
basedir=/software/mysql
bindir=/software/mysql/bin
if test -z "$datadir"
then
datadir=/data/mysql
fi
sbindir=/software/mysql/bin
libexecdir=/software/mysql/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi

保存退出

#cp /software/mysql/support-files/mysql.server  /etc/init.d/mysqld
#chmod 755 /etc/init.d/mysqld

9、啟動mysql

#/etc/init.d/mysqld start

ERROR! The server quit without updating PID file (/software/mysql/mysqld.pid).

因為新版本的mysql安全啟動安裝包只認/usr/local/mysql這個路徑。

解決辦法:

方法1、建立軟連接

例 #cd /usr/local/mysql

#ln -s /sofware/mysql/bin/myslqd mysqld

 

方法2、修改mysqld_safe文件(有強迫症的同學建議這種,我用的這種)

# vim /software/mysql/bin/mysqld_safe

將所有的/usr/local/mysql改為/software/mysql

保存退出。(可以將這個文件拷出來再修改然后替換)

  錯誤代碼:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '

mysql.sock根本就不在 /var/lib/mysql 目錄下。自己的目錄在 /tmp/mysql.sock

於是做了一個連接。

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

10、啟動並登陸mysql

啟動mysql

# 、/etc/init.d/mysqld  start

登陸

mysql -u root -p 

會提示輸入登陸密碼,輸入初始化時候的臨時密碼就可以了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解決方法

修改vi /etc/my.cnf,增加skip-grant-tables可以免密碼登錄mysql

use mysql ;

update user set authentication_string=PASSWORD("123456") where user='root';

再次修改vi /etc/my.cnf,注釋skip-grant-tables,重啟mysql

mysql -uroot -p123456登錄

注:mysql5.7后將password字段調整為authentication_string

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM