“使用二進制通用包安裝MySQL,這個類似于windows下的綠色軟件”這句話也是在別人的博客上看到的,目前Linux玩的不多,沒有如此的體會,不過這里講的挺對的。
而我需要一種在任何Linux下不管你是Centos還是Ubuntu等等,都一樣的一種安裝方法。公司目前沒有運維,以后有一個比較賺錢的私有化項目,可能需要靈活的安裝環境的方式安裝比較好,所以就折騰了一下,不適用apt或者yum之類的方法,畢竟不是專業的搞得有點惡心,特此記錄一下。
PS:我演示的的操作系統是Ubuntu 16.04的64位
mysql5.6與5.7好像差異有一些,公司習慣5.6,包括阿里云目前也是5.6的全部功能都出來了,5.7只有基本功能開放出來,所以就用5.6的mysql。
首先,5.6壓縮包下載地址:
https://dev.mysql.com/downloads/mysql/5.6.html(官網有點慢,可以不從官網下載也可以,官網可以參考一下)
我下載的是mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz,然后上傳到自己的服務器上,按照自己的習慣來就好。
我直接解壓到opt目錄下,并且重新命令為mysql,命令如下:
tar -xzvg mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.39-linux-glibc2.12-x86_64 mysql
好了,然后到usr/local目錄下建立一個軟連接
ln -sv /opt/mysql mysql
接著添加mysql用戶和組,有的話就不用操作了。
注:-r表示是偽用戶,只是用來運行mysql程序,不能登錄系統
groupadd -r -g 306 mysql
useradd -g 306 -r -u 306 mysql
接著將安裝文件的所屬設置為mysql(這個其實不太理解什么意思)
chown -R mysql.mysql /usr/local/mysql/*
網上還有將將數據文件目錄設置到/mydata/data下 chown -R mysql.mysql /mydata
,這個我沒有做也沒啥影響, 反正默認這個我知道有設置在運行目錄的data下面,我就不管了。
接著到mysql目錄下操作,將support-files目錄中將mysql.server復制到/etc/init.d中的mysqld中,創建初始化進程,并且加到服務中
cp support-files/mysql.server /etc/init.d/mysqld
sudo update-rc.d mysqld defaults
我是Ubuntu的所以執行sudo update-rc.d mysqld defaults
,如果是centos則chkconfig --add mysqld
,對應的操作系統不同這一步指令添加服務操作可能不同。
初始化mysql(還是在mysql目錄下,也有添加--datadir=/mydata/data/ 我不管)
scripts/mysql_install_db --user=mysql
配置環境變量
方法一,(不喜歡這種,我用的不是這種)
grep PATH .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
export PATH
方法二,(自己電腦上還有別的多余的請忽略)
vim /etc/profile
添加如下
MYSQL_HOME=/opt/mysql
NODE_HOME=/opt/node/node-v8.9.3-linux-x64
REDIS_HOME=/opt/redis/redis-4.0.9
MONGO_HOME=/opt/mongo/mongodb-linux-x86_64-ubuntu1604-3.6.3
M2_HOME=/opt/maven/apache-maven-3.3.9
PATH=$PATH:$MYSQL_HOME/bin:$NODE_HOME/bin:$REDIS_HOME/bin:$MONGO_HOME/bin:$M2_HOME/bin
第一次或者重啟都需要執行如下 ,
source /etc/profile
可以直接用服務去操作了
service mysqld start
service mysqld resatrt
service mysqld status
...
順便創建一個遠程可登陸的超級用戶:
mysql
GRANT ALL PRIVILEGES ON *.* TO [root@"192.168.1.239]" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
好了,最后奉上我的my.cnf
注:mysql的配置文件尋找順序為/etc/my.cnf -> /etc/mysql/my.cnf -> $BASEDIR/my.cnf -> ~/my.cnf
[client]
default-character-set = utf8
port = 3306
[mysqld]
character_set_server = utf8
port = 3306
server_id = 1
max_connections = 3000
open_files_limit = 65535
max_connect_errors = 6000
skip-host-cache
skip-name-resolve
max_allowed_packet = 32M
read_rnd_buffer_size = 16M
join_buffer_size = 2M
sort_buffer_size = 2M
thread_cache_size = 300
tmp_table_size = 256M
max_heap_table_size = 256M
skip-host-cache
skip-name-resolve
#INNODB
innodb_buffer_pool_size = 400M
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_log_files_in_group = 3
innodb_file_per_table = 1
default-storage-engine = InnoDB
#log
expire_logs_days = 5
log-bin=mysql-bin
slow_query_log = true
long_query_time = 5
lower_case_table_names=1
explicit_defaults_for_timestamp = true
log_bin_trust_function_creators=1
其他檢測
ps -ef|grep mysql
root 1589 1 0 17:01 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/uniubi-PowerEdge-R610.pid
mysql 2052 1589 0 17:01 ? 00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=uniubi-PowerEdge-R610.err --open-files-limit=65535 --pid-file=/usr/local/mysql/data/uniubi-PowerEdge-R610.pid --port=3306
root 2683 2489 0 18:16 pts/9 00:00:00 grep --color=auto mysql
netstat -tnlp
激活Internet連接 (僅服務器)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1402/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1167/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 993/cupsd
tcp6 0 0 :::3306 :::* LISTEN 2052/mysqld
tcp6 0 0 :::22 :::* LISTEN 1167/sshd
tcp6 0 0 ::1:631 :::* LISTEN 993/cupsd
其他:在初始化的時候不成功的問題,操作有:
/mysql/bin/mysqld_safe &
apt install libaio1