linux 安裝mysql 5.7

下載  jar  上傳
# tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.20-linux-glibc2.12-x86_64  /usr/local/mysql
#添加用戶組
groupadd mysql  #若是報錯存在就,就不用添加了
#添加用戶mysql 到用戶組mysql
useradd -g mysql mysql   #若是報錯存在就,就不用添加了
# mkdir data
# chown -R mysql:mysql ./
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql-5.7.20/ --datadir=/usr/local/mysql-5.7.20/data/

# chown -R root .mysql

# chown -R mysql datalinux

# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
cp /usr/local/mysql/bin/my_print_defaults /usr/bin/
#修改啓動腳本
[root@instance_4dbde0 mysql]# vi /etc/init.d/mysqld
#修改項:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
port=3306
#啓動服務
[root@instance_4dbde0 mysql]# service mysqld start


(若是啓動報錯,就看錯誤日誌,錯誤日誌的路徑在my.cfg 中error.log)
(有添加軟鏈接、

從報錯上來看,是因爲缺乏了mysql.plugin表所致的,不過如今連啓動都啓動不了,怎樣建立表呢?因此確定是其餘緣由致使的,於時繼續網上找繼續試,最後找到了這個處理方法,進入mysql安裝後的目錄scripts執行如下語句:sql

 

[root@localhost bin]# ./mysql_install_db --user=mysql --basedir=/home/mysql5627 --datadir=/usr/mysqldata服務器

)
#加入環境變量,編輯 /etc/profile,這樣能夠在任何地方用mysql命令了
[root@instance_4dbde0 mysql]# vi /etc/profile
#添加mysql路徑
export PATH=$PATH:/usr/local/mysql-5.7.20/bin
#刷新當即生效
[root@instance_4dbde0 mysql-5.7.20]# source /etc/profile

 

====================================================================================socket

下面是mysql 5.6 二進制文件安裝tcp

在這個 /data/mysql 路徑下編碼

tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
--鏈接路徑
cd  /usr/local 
--執行
ln -s /data/mysql mysql

-s /bin/false參數指定mysql用戶僅擁有全部權,而沒有登陸權限.net

--建立用戶組
groupadd mysql 
--建立用戶
useradd -r -g mysql -s /bin/false mysql

就是給上面建立的用戶分配權限rest

cd /data/mysql
chown -R mysql:mysql ./

當前所在路徑是 /data/mysql. 日誌

./mysql_install_db  --datadir=/data/mysql/data --basedir=/data/mysql --user=mysql

若是出錯,報「/usr/bin/perl: bad interpreter: No such file or directory」,能夠先安裝perl腳本,命令以下:

yum -y install perl perl-devel
yum install -y perl-Data-Dumper

完成後再執行上面初始化mysql腳本。。。。

默認配置文件所在位置 /etc/my.cnf,執行完步驟6的時候會默認生成一個配置文件

vi /etc/my.cnf
[mysqld]
datadir=/data/mysql-5.6/data
socket=/data/mysql-5.6/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

# 指定編碼
character-set-server=utf8
collation-server=utf8_general_ci

user=mysql

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log   #能夠改成其餘路徑,確保路徑存在,而且mysql用戶組有寫入權限
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

#指定客戶端鏈接mysql時的socket通訊文件路徑
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8

若是沒有錯誤則啓動成功

./support-files/mysql.server start

將mysql進程放入系統進程中,命令以下:

cp support-files/mysql.server /etc/init.d/mysqld

重啓mysql

service mysqld restart
#第一次登錄沒有密碼,直接回車 在MySQL 的安裝路徑軟鏈接 /usr/local/mysql/bin   下面執行
./mysql -u root -p

若是有報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

[root@localhost bin]# ./mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

鏈接localhost一般經過一個Unix域套接字文件進行,通常是/tmp/mysql.sock。若是套接字文件被刪除了,本地客戶就不能鏈接。這可能發生在你的系統運行一個cron任務刪除了/tmp下的臨時文件。

若是你由於丟失套接字文件而不能鏈接,你能夠簡單地經過重啓服務器從新建立獲得它。由於服務器在啓動時從新建立它。
就這樣執行

./mysql -uroot -h 127.0.0.1 -p 

修改root密碼

#newpass就是你的新密碼
mysql> use mysql;

mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
##遠程訪問權限
mysql> update user set host = '%' where user = 'root'; 

mysql> FLUSH PRIVILEGES;

若是報錯,Warning: Using a password on the command line interface can be insecure.

在/etc/my.cnf 中加上

[mysqldump]

user=your_backup_user_name

password=your_backup_password

至此mysql安裝階段完成了。。

開啓3306 端口

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

命令含義: 
zone #做用域 
add-port=80/tcp #添加端口,格式爲:端口/通信協議 
permanent #永久生效,沒有此參數重啓後失效

Step2:重啓防火牆

[sunwei@test2 ~]$ sudo firewall-cmd --reload

相關文章
相關標籤/搜索