假設公司要求安裝在/service下
[root@db03 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
[root@db03 ~]# yum install -y ncurses-devel libaio-devel cmake glibc autoconf gcc-c++
[root@db03 ~]# tar xf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
[root@db03 ~]# mkdir /service
[root@db03 ~]# mv mysql-5.6.42-linux-glibc2.12-x86_64 /service/mysql-5.6.42
[root@db03 ~]# ln -s /service/mysql-5.6.42 /service/mysql
[root@db03 ~]# useradd mysql -s /sbin/nologin -M
[root@db03 ~]# cd /service/mysql/support-files/ [root@db03 /service/mysql/support-files]# cp my-default.cnf /etc/my.cnf cp: overwrite '/etc/my.cnf'? y [root@db03 /service/mysql/support-files]# cp mysql.server /etc/init.d/mysqld
[root@db03 ~]# cd /service/mysql/scripts/ [root@db03 /service/mysql/scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data
[root@db03 ~]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/service/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #重載 [root@db03 ~]# systemctl daemon-reload
[root@db03 ~]# systemctl start mysqld [root@db03 ~]# netstat -lntp tcp6 0 0 :::3306 :::* LISTEN 7687/mysqld #如果查看進程啟動失敗 #詳見文章最后
[root@db03 ~]# vim /etc/profile.d/mysql.sh export PATH=/service/mysql/bin:$PATH [root@db03 ~]# source /etc/profile
接上服務起不來 也不報錯
#1.使用system啟動 [root@db03 ~]# systemctl start mysqld #查看進程啟動失敗,沒有任何報錯 #2.使用mysqld啟動腳本啟動 [root@db03 ~]# /etc/init.d/mysqld start /etc/init.d/mysqld: line 244: my_print_defaults: command not found /etc/init.d/mysqld: line 264: cd: /usr/local/mysql: No such file or directory Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
#原因:二進制的包是源碼包已經生成編譯安裝完成的,在cmake階段已經指定了所有的目錄都是/usr/local/mysql,所以啟動時所有程序都去找/usr/local/mysql目錄,沒有該目錄,所以啟動失敗 #3.解決啟動問題 1)方法一:做軟連接 [root@db03 ~]# ln -s /service/mysql /usr/local/mysql 2)方法二:修改啟動文件 [root@db03 ~]# vim /etc/init.d/mysqld basedir=/service/mysql datadir=/service/mysql/data #4.再次測試啟動 [root@db03 ~]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! #或者 [root@db03 ~]# systemctl start mysqld