centos65編譯安裝mysql
下面是安裝mysql的命令:
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
#rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
系統會自動安裝。最後會提示成功安裝。
安裝完之後重啟一下mysql服務:
# service mysqld restart
會輸出:Redirecting to /bin/systemctl restart mysqld.service
然後用命令#netstat -atp可以看到mysqld進程已經開始監聽了:
此時表明mysql現在可以用了,直接輸入mysql就可以連接到伺服器,見下圖:
此時沒有輸入用戶和密碼就可以直接連接。
添加用戶的密碼:set password for 'root'@'localhost' = password('xxx');
然後再連接資料庫就需要輸入密碼:
不同linux版本,安裝不同版本的mysql方法各不相同,下面以CentOS 6.5編譯安裝MySQL 5.6.16介紹:
一.准備工作
1.yum安裝各個依賴包
[root@WebServer ~]# yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bison bison-devel unzip
2.新建mysql組和用戶
[root@WebServer ~]# groupadd mysql
[root@WebServer ~]# useradd -g mysql -s /sbin/nologin mysql
3.目錄准備
[root@WebServer ~]# mkdir -p /webserver/mysql/etc
[root@WebServer ~]# mkdir -p /webserver/mysql/data
[root@WebServer ~]# mkdir -p /webserver/mysql/tmp
[root@WebServer ~]# chown -R mysql.mysql /webserver/mysql
4.解壓MySQL並進入安裝目錄
[root@WebServer ~]# tar zxvf mysql-5.6.16.tar.gz
[root@WebServer ~]# cd mysql-5.6.16
二.編譯並安裝
1.編譯MySQL
[root@WebServer mysql-5.6.16]# cmake -DCMAKE_INSTALL_PREFIX=/webserver/mysql \
> -DSYSCONFDIR=/webserver/mysql/etc \
> -DMYSQL_DATADIR=/webserver/mysql/data \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/webserver/mysql/tmp/mysqld.sock \
> -DMYSQL_USER=mysql \
> -DEXTRA_CHARSETS=all \
> -DWITH_READLINE=1 \
> -DWITH_SSL=system \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DENABLE_DOWNLOADS=1
2.如果出現以下錯誤
則需要
[root@WebServer mysql-5.6.16]# cd source_downloads/
[root@WebServer source_downloads]# unzip gmock-1.6.0.zip
[root@WebServer source_downloads]# ./configure
[root@WebServer source_downloads]# make
[root@WebServer source_downloads]# cd ..
然後刪除mysql-5.6.16目錄下的CMakeCache.txt重新使用cmake進行編譯安裝
2.安裝
[root@WebServer mysql-5.6.16]# make && make install
編譯過程會比較漫長,編譯時間取決於機器的性能
三.MySQL配置
1.客戶端庫文件的鏈接(未執行此步驟的話,在PHP編譯時會提示找不到MySQL文件)
[root@WebServer mysql-5.6.16]# ln -s /webserver/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
ps:我使用的是64位CentOS,如果使用的是32位請使用ln -s /webserver/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
2.MySQL啟動文件的配置
[root@WebServer mysql-5.6.16]# cp support-files/mysql.server /etc/init.d/mysqld
[root@WebServer mysql-5.6.16]# chmod +x /etc/init.d/mysqld
[root@WebServer mysql-5.6.16]# vim /etc/init.d/mysqld
basedir=/webserver/mysql
datadir=/webserver/mysql/data
//修改以上這2行的路徑即可
3.設置MySQL配置文件
[root@WebServer mysql-5.6.16]# cp support-files/my-default.cnf /webserver/mysql/etc/my.cnf
[root@WebServer mysql-5.6.16]# rm -rf /etc/my.cnf
[root@WebServer mysql-5.6.16]# ln -s /webserver/mysql/etc/my.cnf /etc/my.cnf
4.初始化資料庫
[root@WebServer mysql-5.6.16]# cd /webserver/mysql
[root@WebServer mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/webserver/mysql --datadir=/webserver/mysql/data
5.鏈接MySQL命令(這一步可以讓我們方便很多,可以不用寫出命令的路徑,也可以寫入/etc/profile的PATH中)
[root@WebServer ~]# cd /usr/sbin
[root@WebServer sbin]# ln -s /webserver/mysql/bin/* .
6.啟動MySQL並設置為開機啟動
[root@WebServer sbin]# service mysqld start ;chkconfig mysqld on
Starting MySQL.. SUCCESS!
7.設置MySQL root用戶的密碼
[root@WebServer ~]# mysqladmin -u root password 123456
這里將MySQL的root密碼設置為123456,強烈不建議將資料庫的密碼設的簡單
8.刪除用戶密碼為空的用戶
[root@WebServer ~]# mysql -u root -p
Enter password:
mysql> use mysql;
mysql> select Host,User,Password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | * |
| webserver | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| webserver | | |
+-----------+------+-------------------------------------------+
6 rows in set (0.00 sec)
mysql> delete from user where password="";
Query OK, 5 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select Host,User,Password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | * |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
mysql> exit;
完畢。
③ centos6.5 編譯安裝mysql5.6.10 出錯了,求解!
這個明顯就是庫的問題啊 , 肯定不兼容, 看看wo 的網名可以嗎?一定可以解決的啊
④ 如何在linux系統中centos7.6上面安裝mysql資料庫
你可以參考一下網頁鏈接
⑤ 怎麼在linux上安裝mysql
1. 運行平台:CentOS 6.3 x86_64,基本等同於RHEL 6.3
2. 安裝方法:
安裝MySQL主要有兩種方法:一種是通過源碼自行編譯安裝,這種適合高級用戶定製MySQL的特性,這里不做說明;另一種是通過編譯過的二進制文件進行安裝。二進制文件安裝的方法又分為兩種:一種是不針對特定平台的通用安裝方法,使用的二進制文件是後綴為.tar.gz的壓縮文件;第二種是使用RPM或其他包進行安裝,這種安裝進程會自動完成系統的相關配置,所以比較方便。
3. 下載安裝包:
a. 官方下載地址:
http://dev.mysql.com/downloads/mysql/#downloads
或鏡像文件下載:
http://dev.mysql.com/downloads/mirrors.html
2. 下載文件(根據操作系統選擇相應的發布版本):
a. 通用安裝方法
mysql-5.5.29-linux2.6-x86_64.tar.gz
b. RPM安裝方法:
MySQL-server-5.5.29-2.el6.x86_64.rpm
MySQL-client-5.5.29-2.el6.x86_64.rpm
4. 通用安裝步驟
a. 檢查是否已安裝,grep的-i選項表示匹配時忽略大小寫
[root@localhost JavaEE]#rpm -qa|grep -i mysql
mysql-libs-5.1.61-4.el6.x86_64
*可見已經安裝了庫文件,應該先卸載,不然會出現覆蓋錯誤。注意卸:載時使用了--nodeps選項,忽略了依賴關系:
[root@localhost JavaEE]#rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps
b. 添加mysql組和mysql用戶,用於設置mysql安裝目錄文件所有者和所屬組。
[root@localhost JavaEE]#groupadd mysql
[root@localhost JavaEE]#useradd -r -g mysql mysql
*useradd -r參數表示mysql用戶是系統用戶,不可用於登錄系統。
c. 將二進制文件解壓到指定的安裝目錄,我們這里指定為/usr/local
[root@localhost ~]# cd/usr/local/
[root@localhost local]#tar zxvf /path/to/mysql-5.5.29-linux2.6-x86_64.tar.gz
*加壓後在/usr/local/生成了解壓後的文件夾mysql-5.5.29-linux2.6-x86_64,這名字太長,我們為它建立一個符號鏈接mysql,方便輸入。
[root@localhost local]#ln -s mysql-5.5.29-linux2.6-x86_64 mysql
d. /usr/local/mysql/下的目錄結構
Directory
Contents of Directory
bin
Client programs and the mysqld server
data
Log files, databases
docs
Manual in Info format
man
Unix manual pages
include
Include (header) files
lib
Libraries
scripts
mysql_install_db
share
Miscellaneous support files, including error messages, sample configuration files, SQL for database installation
sql-bench
Benchmarks
e. 進入mysql文件夾,也就是mysql所在的目錄,並更改所屬的組和用戶。
[root@localhost local]#cd mysql
[root@localhost mysql]#chown -R mysql .
[root@localhost mysql]#chgrp -R mysql .
f. 執行mysql_install_db腳本,對mysql中的data目錄進行初始化並創建一些系統表格。注意mysql服務進程mysqld運行時會訪問data目錄,所以必須由啟動mysqld進程的用戶(就是我們之前設置的mysql用戶)執行這個腳本,或者用root執行,但是加上參數--user=mysql。
[root@localhost mysql]scripts/mysql_install_db --user=mysql
*如果mysql的安裝目錄(解壓目錄)不是/usr/local/mysql,那麼還必須指定目錄參數,如
[root@localhost mysql]scripts/mysql_install_db --user=mysql \
--basedir=/opt/mysql/mysql \
--datadir=/opt/mysql/mysql/data
*將mysql/目錄下除了data/目錄的所有文件,改回root用戶所有,mysql用戶只需作為mysql/data/目錄下所有文件的所有者。
[root@localhost mysql]chown -R root .
[root@localhost mysql]chown -R mysql data
g. 復制配置文件
[root@localhost mysql] cp support-files/my-medium.cnf /etc/my.cnf
h. 將mysqld服務加入開機自啟動項。
*首先需要將scripts/mysql.server服務腳本復制到/etc/init.d/,並重命名為mysqld。
[root@localhostmysql] cp support-files/mysql.server /etc/init.d/mysqld
*通過chkconfig命令將mysqld服務加入到自啟動服務項中。
[root@localhost mysql]#chkconfig --add mysqld
*注意服務名稱mysqld就是我們將mysql.server復制到/etc/init.d/時重命名的名稱。
*查看是否添加成功
[root@localhost mysql]#chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
i. 重啟系統,mysqld就會自動啟動了。
*檢查是否啟動
[root@localhost mysql]#netstat -anp|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2365/mysqld
unix 2 [ ACC ] STREAM LISTENING 14396 2365/mysqld /tmp/mysql.sock
*如果不想重新啟動,那可以直接手動啟動。
[root@localhost mysql]#service mysqld start
Starting MySQL.. SUCCESS!
j. 運行客戶端程序mysql,在mysql/bin目錄中,測試能否連接到mysqld。
[root@localhost mysql]#/usr/local/mysql/bin/mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 2
Server version:5.5.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registeredtrademark of Oracle Corporation and/or its affiliates. Other names may betrademarks of their respective owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql> quit
Bye
*此時會出現mysql>命令提示符,可以輸入sql語句,輸入quit或exit退出。為了避免每次都輸入mysql的全路徑/usr/local/mysql/bin/mysql,可將其加入環境變數中,在/etc/profile最後加入兩行命令:
MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
這樣就可以在shell中直接輸入mysql命令來啟動客戶端程序了
[root@localhost mysql]#mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 3
Server version:5.5.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registeredtrademark of Oracle Corporation and/or its
affiliates. Other namesmay be trademarks of their respective
owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql>
5. RPM安裝步驟
a. 檢查是否已安裝,grep的-i選項表示匹配時忽略大小寫
[root@localhost JavaEE]#rpm -qa|grep -i mysql
mysql-libs-5.1.61-4.el6.x86_64
可見已經安裝了庫文件,應該先卸載,不然會出現覆蓋錯誤。注意卸載時使用了--nodeps選項,忽略了依賴關系:
[root@localhost JavaEE]#rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps
2. 安裝MySQL的伺服器端軟體,注意切換到root用戶:
[root@localhost JavaEE]#rpm -ivh MySQL-server-5.5.29-2.el6.x86_64.rpm
安裝完成後,安裝進程會在Linux中添加一個mysql組,以及屬於mysql組的用戶mysql。可通過id命令查看:
[root@localhost JavaEE]#id mysql
uid=496(mysql)gid=493(mysql) groups=493(mysql)
MySQL伺服器安裝之後雖然配置了相關文件,但並沒有自動啟動mysqld服務,需自行啟動:
[root@localhost JavaEE]#service mysql start
Starting MySQL.. SUCCESS!
可通過檢查埠是否開啟來查看MySQL是否正常啟動:
[root@localhost JavaEE]#netstat -anp|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 34693/mysqld
c. 安裝MySQL的客戶端軟體:
[root@localhost JavaEE]#rpm -ivh MySQL-client-5.5.29-2.el6.x86_64.rpm
如果安裝成功應該可以運行mysql命令,注意必須是mysqld服務以及開啟:
[root@localhost JavaEE]#mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 1
Server version: 5.5.29MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademarkof Oracle Corporation and/or its affiliates. Other names may be trademarks oftheir respective owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql>
d. RPM安裝方式文件分布
Directory
Contents of Directory
/usr/bin
Client programs and scripts
/usr/sbin
The mysqld server
/var/lib/mysql
Log files, databases
/usr/share/info
Manual in Info format
/usr/share/man
Unix manual pages
/usr/include/mysql
Include (header) files
/usr/lib/mysql
Libraries
/usr/share/mysql
Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation
/usr/share/sql-bench
Benchmarks