今天爲你們介紹下mysql5.5.37的編譯安裝方式,在工做中編譯安裝也是咱們經常使用的一種方式。但願經過這篇文章的介紹,可以給你們提供一個安裝思路!mysql
1、建立mysql的安裝目錄和用戶
c++
mkdir -p /usr/local/mysql #安裝mysql mkdir -p /usr/local/mysql/data #存放數據庫 groupadd mysql useradd -r -g mysql mysql
2、yum安裝依賴庫sql
yum install gcc-c++ ncurses-devel –y
#安裝錯誤信息: CMake Error atcmake/readlineNaNake:83 (MESSAGE): Curses library notfound. Please install appropriatepackage, #解決方法 yum install ncurses-devel rm CMakeCache.txt
3、編譯安裝cmake
數據庫
tar -zxv -f cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./configure make && make install
tar -zxv -f mysql-5.5.37.tar.gz #解壓 cd mysql-5.5.37 #編譯參數 [root@localhost mysql-5.5.37]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 #執行make命令 make make install
cd /usr/local/mysql/ [root@localhost mysql]#ls bin COPYING data docs include INSTALL-BINARY lib man mysql-test README scripts share sql-bench support-files #有bin等以上文件的話,恭喜你已經成功安裝了mysql。
#把當前目錄中全部文件的全部者設爲root,所屬組爲mysql chown -R root:mysql . chown -R mysql:mysql data (可選) #將mysql的啓動服務添加到系統服務中 [root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf cp:是否覆蓋"/etc/my.cnf"? y
#mysql啓動出錯解決方法 一、問題 [root@localhost mysql]# /etc/rc.d/init.d/mysql statusMySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED][root@localhost mysql]# /etc/rc.d/init.d/mysql startStarting MySQL...The server quit without updating PID file(/usr/local/mysql/data/localhost.localdomain.pid). [FAILED] 二、緣由 沒有初始化權限表 三、解決辦法 cd /usr/local/mysql(進入mysql安裝目錄)chown -R mysql.mysql . #從新初始化數據庫 [root@B2C-test-server mysql]# ./scripts/mysql_install_db--user=mysql [root@B2C-test-server mysql]# /etc/init.d/mysql start Starting MySQL.. SUCCESS!
#直接輸入mysql啓動數據庫出錯: [root@localhost mysql]# mysql -bash: mysql: command not found #解決方法 [root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql/usr/bin/
#修改MySQL的root用戶的密碼以及打開遠程鏈接 [root@B2C-test-server mysql]# mysql -u root mysql mysql> use mysql; mysql> desc user; mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; #爲root添加遠程鏈接的能力 mysql> update user set Password = password('123456') where User='root'; #設置root用戶密碼 mysql> select Host,User,Password from user where User='root'; mysql> flush privileges; mysql> exit #從新登陸 [root@B2C-test-server mysql]# mysql -u root -p Enter password:123456 #若還不能進行遠程鏈接,關閉防火牆 [root@B2C-test-server mysql]# /etc/rc.d/init.d/iptables stop
#方法一:在mysql系統外,使用mysqladmin [root@B2C-test-server mysql]# mysqladmin -u rootflush-privileges password 'root'
#方法一:經過登陸mysql系統 [root@B2C-test-server mysql]# mysql -u root -p Enter password: mysql> use mysql; Database changed mysql> update user set password=password("root")where user='root'; Query OK, 4 rows affected (0.00 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> flush privileges; mysql> exit;
#方法一: # /etc/init.d/mysqld stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking& # mysql -uroot mysql mysql> update user setPassword=Password('newpassword') where User='root'; mysql> flush privileges; mysql> quit # /etc/init.d/mysql restart # mysql -uroot -penter password:
#方法二: #修改MySQL的登陸設置: #在[mysqld]的段中加上一句:skip-grant-tables 以下: [root@B2C-test-server mysql]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql skip-grant-tables #重啓mysql /etc/init.d/mysqld restartStoppingmysqld: [ OK ]Startingmysqld: [ OK ] #無密碼登陸: # mysql mysql> use mysql;update user setPassword=Password('root') where User='root'; mysql> flush privileges; #退出,修改/etc/my.conf,刪除skip-grant-tables,重啓mysql。搞定
OK! mysql的編譯安裝今天就先介紹到這裏吧!bash