linux二进制通用包安装mysql5.6

96
Pale_Eyes
2018.04.04 18:15* 字数 773

“使用二进制通用包安装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(官网有点慢,可以不从官网下载也可以,官网可以参考一下)

image.png

我下载的是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
image.png

好了,然后到usr/local目录下建立一个软连接

ln -sv /opt/mysql mysql
image.png

接着添加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
随笔