建立安裝目錄html
cd /usr/local/ mkdir mysql cd mysql
下載安裝包java
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
解壓安裝包mysql
tar vxzf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
配置mysqllinux
創建mysql運行對應的用戶和用戶組,並建立數據庫sql
創建用戶mysql,組mysql 。後面mysql就使用這個用戶來運行數據庫
(注意這也是mysql啓動腳本中默認的用戶,所以最好不要更名,使用-r參數表示mysql用戶是一個系統用戶,不能登陸)vim
groupadd mysql useradd -r -g mysql mysql
建立數據庫目錄socket
mkdir -p /var/mysql/data chown -R mysql:mysql /var/mysql cd /usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64
初始化數據庫tcp
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 --datadir=/var/mysql/data
若是出現如下錯誤:測試
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
解決方法:安裝後在初始化就能夠了
[root@xxx]# yum install -y libaio
把mysql加入搜索路徑
在/etc/profile中增長如下行,把mysql加入搜索路徑
# mysql export MYSQL_HOME=/usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 export PATH=${MYSQL_HOME}/bin:$PATH
source /etc/profile 使配置文件生效
配置mysql
拷貝mysql配置文件
cd /usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 cp support-files/my-default.cnf /etc/my.cnf
若是不存在my.cnf,則不用拷貝,直接修改 /etc/my.cnf文件
修改my.cnf,主要配置以下
[mysqld] datadir=/var/mysql/data socket=/var/mysql/data/mysql.sock Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 interactive_timeout=3000 wait_timeout=3000 character-set-server=utf8 collation-server=utf8_general_ci #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 [mysqld_safe] # log-error=/var/log/mariadb/mariadb.log # pid-file=/var/run/mariadb/mariadb.pid log-error=/var/log/mysql/mysql.log pid-file=/var/mysql/data/mysql.pid [client] socket=/var/mysql/data/mysql.sock # include all files from the config directory !includedir /etc/my.cnf.d
爲mysql的log準備空間
cd /var/log mkdir mysql chown -R mysql:mysql ./mysql/
配置系統啓動後自動啓動mysqld
拷貝mysqld的配置文件
cd /usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 cp support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld
修改/etc/init.d/mysqld
vim /etc/init.d/mysqld,把其中兩行修改成:
basedir=/usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 datadir=/var/mysql/data
設定開機啓動,並啓動
chkconfig --add mysqld chkconfig mysqld on service mysqld start
檢查mysqld服務已經啓動
ps -ef|grep mysqld netstat -lnp | grep -i mysql
[root@xxx mysql-5.7.18-linux-glibc2.5-x86_64]# netstat -anp | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 9897/mysqld [root@xxx mysql-5.7.18-linux-glibc2.5-x86_64]# service mysqld status MySQL running (9897) [ OK ] [root@xxx mysql-5.7.18-linux-glibc2.5-x86_64]#
客戶端鏈接測試
cd /usr/local/mysql/mysql-5.7.18-linux-glibc2.5-x86_64 bin/mysql -uroot -p
若是出現錯誤:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘***’ (2)
解決辦法 :
肯定「socket」文件正確位置:
肯定mysql服務正常運行後,產生此錯誤的緣由只剩下「socket」文件路徑不正確了,咱們能夠使用「find」命令或者「lsof」命令來肯定socket文件的正確路徑:
[root@xxx mysql-5.7.18-linux-glibc2.5-x86_64]# find / -name '*.sock' /var/mysql/data/mysql.sock
修改「/etc/my.cnf」配置文件,在配置文件中添加「[client]」選項和「[mysql]」選項,並使用這兩個選項下的「socket」參數值,與「[mysqld]」選項下的「socket」參數值,指向的socket文件路徑徹底一致。以下:
... [client] default-character-set=utf8 socket=/var/mysql/data/mysql.sock [mysql] default-character-set=utf8 socket=/var/mysql/data/mysql.sock
可參考:http://aiezu.com/article/mysql_cant_connect_through_socket.html
修改mysql的登陸密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcdefg12345l';