做爲一個長期混跡在windows圈的小白,當拿到一個新的linux服務器時,有點手足無措的趕腳。可是萬事開頭難嘛,Just Do It!html
下面記錄一下本身安裝各類軟件時遇到的坑。這一篇先講mysqlmysql
安裝環境:系統是 centos7.3 64位linux
1:mysqlsql
一般軟件都安裝在 /usr/local下面數據庫
#下載windows
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gzcentos
不然只能先經過windows下載,再用winscp傳到linux系統了。bash
#解壓服務器
tar
-zxvf mysql-5.6.33-linux-glibc2.5-x86_64.
tar
.gz
socket
#複製解壓後的mysql目錄
cp
-r mysql-5.6.33-linux-glibc2.5-x86_64
/usr/local/mysql
#添加用戶組
groupadd mysql
#添加用戶mysql 到用戶組mysql
useradd
-g mysql mysql
#在mysql目錄下建立data目錄
mkdir
./data (不要忘記了有個點)
#把mysql目錄賦給mysql用戶
chown
-R mysql:mysql ./
#安裝
.
/scripts/mysql_install_db
--user=mysql --datadir=
/usr/local/mysql/data
cp
support-files
/mysql
.server
/etc/init
.d
/mysqld
chmod
755
/etc/init
.d
/mysqld
cp
support-files
/my-default
.cnf
/etc/my
.cnf
#修改啓動腳本
vi
/etc/init
.d
/mysqld
下面這幾行好像也要在etc/my.cnf裏面改?vi /etc/my.cnf ---20181227留
#修改項:
basedir=
/usr/local/mysql/
datadir=
/usr/local/mysql/data/
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp
#啓動服務
service mysqld start
#加入環境變量,編輯 /etc/profile,這樣能夠在任何地方用mysql命令了
export
PATH=$PATH:
/usr/local/mysql/bin
source
/etc/profile
#測試鏈接
.
/mysql/bin/mysql
-uroot
#關閉mysql
service mysqld stop
#查看運行狀態
service mysqld status
------------------------------分割線
遇到的問題:
1:MySQL提示:The server quit without updating PID file
先查看下錯誤日誌,一般是權限問題,或者是已經存在mysqld進程,或者是/etc/my.cnf的data配置節沒弄對,或者是打開了selinux,centos系統,默認會開啓selinux
打開/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled
可是我遇到了這個問題上面的方法都沒解決,後來發現是內存不足致使的。。窮人啊,沒招,只好加內存,再重啓,問題解決。。
2:sqlyog鏈接時,報1130錯誤,是因爲沒有給遠程鏈接的用戶權限問題
解決辦法:更改 ‘mysql’數據庫‘user’表‘host’項,從‘localhost’改爲‘%’
use mysql; select 'host' from user where user='root'; update user set host = '%' where user ='root'; flush privileges;
\q
其實這一句能夠修改爲這樣,
update user set host = '%' where host ='localhost';
3:sqlyog鏈接時,修改root密碼
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;//記得要這句話,不然若是關閉先前的終端,又會出現原來的錯誤
mysql> \q
4:始化mysql數據庫提示缺乏Data:dumper模塊
FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
這篇博文參考瞭如下link。https://www.cnblogs.com/bookwed/p/5896619.html
5:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
緣由是mysql的max_allowed_packet設置太小引發的,我一開始設置的是1M,後來改成了20M
查看目前配置
show VARIABLES like '%max_allowed_packet%';
能夠編輯my.cnf來修改(windows下my.ini), vi /etc/my.cnf
在[mysqld]段或者mysql的server配置段進行修改。
max_allowed_packet = 20M
若是找不到my.cnf能夠經過
mysql --help | grep my.cnf
去尋找my.cnf文件.
6. Can't connect to local MySQL server through socket '***'
參考 http://aiezu.com/article/mysql_cant_connect_through_socket.html
解決方案:
修改「/etc/my.cnf」配置文件,在配置文件中添加「[client]」選項和「[mysql]」選項,並使用這兩個選項下的「socket」參數值,與「[mysqld]」選項下的「socket」參數值,指向的socket文件路徑徹底一致。以下:
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
[client]
default-character-set=utf8
socket=/usr/local/mysql/data/mysql.sock
[mysql]
default-character-set=utf8
socket=/usr/local/mysql/data/mysql.sock
修改完後,重啓mysqld服務,便可解決
7. Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
yum install -y libaio
搞定