程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> CentOS6.4下Mysql數據庫的安裝與配置

CentOS6.4下Mysql數據庫的安裝與配置

編輯:Oracle教程

轉載:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html

自己有修改了一些mysql啟動雲間的

如果要在Linux上做j2ee開發,首先得搭建好j2ee的開發環境,包括了jdk、tomcat、eclipse的安裝(這個在之前的一篇隨筆中已經有詳細講解了Linux學習之CentOS(七)--CentOS下j2ee環境搭建),如果要開發web項目,我們當然可以安裝一個myeclipse到Linux系統上去,這個安裝方法和安裝eclipse完全相同,就沒有記錄下來了,有了jdk、tomcat、eclipse我們就已經能進行我們的程序開發了,但是如果要做一個項目,哪怕是小的不能再小的項目都離不開數據的存儲呀!!!沒錯,咱們還差一個最重要的軟件沒有裝,也就是數據庫!!!如果沒有了數據庫,咱們做項目簡直是空想,所以呢,對於數據庫安裝這塊,專門為安裝mysql數據庫寫了這篇隨筆。。。。。。

一、mysql簡介

說到數據庫,我們大多想到的是關系型數據庫,比如mysql、oracle、sqlserver等等,這些數據庫軟件在windows上安裝都非常的方便,在Linux上如果要安裝數據庫,咱不得不首先推薦的是mysql數據庫了,而且Mysql數據庫的第一個版本就是發行在Linux系統上的。

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle公司。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL的SQL語言是用於訪問數據庫的最常用標准化語言。MySQL軟件采用了雙授權政策(本詞條“授權政策”),它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。由於其社區版的性能卓越,搭配PHP和Apache可組成良好的開發環境。

在Linux上安裝mysql數據庫,我們可以去其官網上下載mysql數據庫的rpm包,http://dev.mysql.com/downloads/mysql/5.6.html#downloads,大家可以根據自己的操作系統去下載對應的數據庫文件,目前最新的版本是5.6.10了。

在這裡我是通過yum來進行mysql數據庫的安裝的,通過這種方式進行安裝,可以將跟mysql相關的一些服務、jar包都給我們安裝好,所以省去了很多不必要的麻煩!!!

二、卸載掉原有mysql

因為mysql數據庫在Linux上實在是太流行了,所以目前下載的主流Linux系統版本基本上都集成了mysql數據庫在裡面,我們可以通過如下命令來查看我們的操作系統上是否已經安裝了mysql數據庫

[root@xiaoluo ~]# rpm -qa | grep mysql  // 這個命令就會查看該操作系統上是否已經安裝了mysql數據庫

有的話,我們就通過 rpm -e 命令 或者 rpm -e --nodeps 命令來卸載掉

[root@xiaoluo ~]# rpm -e mysql  // 普通刪除模式
[root@xiaoluo ~]# rpm -e --nodeps mysql  // 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除

在刪除完以後我們可以通過 rpm -qa | grep mysql 命令來查看mysql是否已經卸載成功!!

三、通過yum來進行mysql的安裝

我是通過yum的方式來進行mysql的數據庫安裝,首先我們可以輸入 yum list | grep mysql 命令來查看yum上提供的mysql數據庫可下載的版本:

[root@xiaoluo ~]# yum list | grep mysql

就可以得到yum服務器上mysql數據庫的可下載版本信息:

\

然後我們可以通過輸入 yum install -y mysql-server mysql mysql-devel 命令將mysql mysql-server mysql-devel都安裝好(注意:安裝mysql時我們並不是安裝了mysql客戶端就相當於安裝好了mysql數據庫了,我們還需要安裝mysql-server服務端才行)

[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-deve

在等待了一番時間後,yum會幫我們選擇好安裝mysql數據庫所需要的軟件以及其它附屬的一些軟件

\

我們發現,通過yum方式安裝mysql數據庫省去了很多沒必要的麻煩,當出現下面的結果時,就代表mysql數據庫安裝成功了<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140314/2014031409015555.jpg" alt="\">

此時我們可以通過如下命令,查看剛安裝好的mysql-server的版本

[root@xiaoluo ~]# rpm -qi mysql-server

我們安裝的mysql-server並不是最新版本,如果你想嘗試最新版本,那就去mysql官網下載rpm包安裝就行了,至此我們的mysql數據庫已經安裝完成了。

四、mysql數據庫的初始化及相關配置

我們在安裝完mysql數據庫以後,會發現會多出一個mysqld的服務,這個就是咱們的數據庫服務,我們通過輸入 service mysqld start 命令就可以啟動我們的mysql服務。

注意:如果我們是第一次啟動mysql服務,mysql服務器首先會進行初始化的配置,如:

復制代碼
[root@xiaoluo ~]# service mysqld start

初始化 MySQL 數據庫: WARNING: The host 'xiaoluo' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h xiaoluo password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [確定]
正在啟動 mysqld:                                            [確定]
復制代碼

這時我們會看到第一次啟動mysql服務器以後會提示非常多的信息,目的就是對mysql數據庫進行初始化操作,當我們再次重新啟動mysql服務時,就不會提示這麼多信息了,如:

[root@xiaoluo ~]# service mysqld restart
停止 mysqld:                                             [確定]
正在啟動 mysqld:                                          [確定]

我們在使用mysql數據庫時,都得首先啟動mysqld服務,我們可以 通過 chkconfig --list | grep mysqld 命令來查看mysql服務是不是開機自動啟動,如:

[root@xiaoluo ~]# chkconfig --list | grep mysqld
mysqld             0:關閉    1:關閉    2:關閉    3:關閉    4:關閉    5:關閉    6:關閉

我們發現mysqld服務並沒有開機自動啟動,我們當然可以通過 chkconfig mysqld on 命令來將其設置成開機啟動,這樣就不用每次都去手動啟動了

[root@xiaoluo ~]# chkconfig mysqld on
[root@xiaoluo ~]# chkconfig --list | grep mysql
mysqld             0:關閉    1:關閉    2:啟用    3:啟用    4:啟用    5:啟用    6:關閉

mysql數據庫安裝完以後只會有一個root管理員賬號,但是此時的root賬號還並沒有為其設置密碼,在第一次啟動mysql服務時,會進行數據庫的一些初始化工作,在輸出的一大串信息中,我們看到有這樣一行信息 :

/usr/bin/mysqladmin -u root password 'new-password'  // 為root賬號設置密碼

所以我們可以通過 該命令來給我們的root賬號設置密碼(注意:這個root賬號是mysql的root賬號,非Linux的root賬號)

[root@xiaoluo ~]# mysqladmin -u root password 'root'  // 通過該命令給root賬號設置密碼為 root

此時我們就可以通過 mysql -u root -p 命令來登錄我們的mysql數據庫了

\

五、mysql數據庫的主要配置文件

1./etc/my.cnf 這是mysql的主配置文件

我們可以查看一下這個文件的一些信息

復制代碼
[root@xiaoluo etc]# ls my.cnf 
my.cnf
[root@xiaoluo etc]# cat my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
復制代碼

2./var/lib/mysql mysql數據庫的數據庫文件存放位置

我們的mysql數據庫的數據庫文件通常是存放在了/ver/lib/mysql這個目錄下

復制代碼
[root@xiaoluo ~]# cd /var/lib/mysql/
[root@xiaoluo mysql]# ls -l
總用量 20488
-rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1
-rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1
drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql  // 這兩個是mysql數據庫安裝時默認的兩個數據庫文件
srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock
drwx------. 2 mysql mysql     4096 4月   6 21:59 test  // 這兩個是mysql數據庫安裝時默認的兩個數據庫文件
復制代碼

我們可以自己創建一個數據庫,來驗證一下該數據庫文件的存放位置

復制代碼
創建一個我們自己的數據庫:
mysql> create database xiaoluo;
Query OK, 1 row affected (0.00 sec)

[root@xiaoluo mysql]# ls -l
總用量 20492
-rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1
-rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1
drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql
srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock
drwx------. 2 mysql mysql     4096 4月   6 21:59 test
drwx------. 2 mysql mysql     4096 4月   6 22:15 xiaoluo  // 這個就是我們剛自己創建的xiaoluo數據庫
[root@xiaoluo mysql]# cd xiaoluo/
[root@xiaoluo xiaoluo]# ls
db.opt
復制代碼

3./var/log mysql數據庫的日志輸出存放位置

我們的mysql數據庫的一些日志輸出存放位置都是在/var/log這個目錄下

復制代碼
[root@xiaoluo xiaoluo]# cd 
[root@xiaoluo ~]# cd /var/log
[root@xiaoluo log]# ls
amanda                cron           maillog-20130331   spice-vdagent.log
anaconda.ifcfg.log    cron-20130331  mcelog             spooler
anaconda.log          cups           messages           spooler-20130331
anaconda.program.log  dirsrv         messages-20130331  sssd
anaconda.storage.log  dmesg          mysqld.log         tallylog
anaconda.syslog       dmesg.old      ntpstats           tomcat6
anaconda.xlog         dracut.log     piranha            wpa_supplicant.log
anaconda.yum.log      gdm            pm-powersave.log   wtmp
audit                 httpd          ppp                Xorg.0.log
boot.log              ibacm.log      prelink            Xorg.0.log.old
btmp                  lastlog        sa                 Xorg.1.log
btmp-20130401         libvirt        samba              Xorg.2.log
cluster               luci           secure             Xorg.9.log
ConsoleKit            maillog        secure-20130331    yum.log
復制代碼

其中mysqld.log 這個文件就是我們存放我們跟mysql數據庫進行操作而產生的一些日志信息,通過查看該日志文件,我們可以從中獲得很多信息

因為我們的mysql數據庫是可以通過網絡訪問的,並不是一個單機版數據庫,其中使用的協議是 tcp/ip 協議,我們都知道mysql數據庫綁定的端口號是 3306 ,所以我們可以通過 netstat -anp 命令來查看一下,Linux系統是否在監聽 3306 這個端口號:

\

結果如上所示,Linux系統監聽的3306端口號就是我們的mysql數據庫!!!!

裝了mysql後,不知道什麼時候執行了一次mysqladmin...的命令,
再連接數據庫就出現了這種問題了:
Access denied for user "root'@'localhost' (using password: YES)

[root@localhost ~]#  /etc/init.d/mysql stop
Shutting down MySQL...                                     [關閉]
[root@localhost ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[1] 24482
[root@localhost ~]# 100902 15:09:24 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'.
100902 15:09:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

[root@localhost ~]# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.50 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user,host,password from user;
+------+-----------------------+-----------+
| user | host                  | password  |
+------+-----------------------+-----------+
| root | localhost             | ******** |
| root | localhost.localdomain | ******** |
| root | 127.0.0.1             | ******** |
+------+-----------------------+-----------+
3 rows in set (0.00 sec)
update mysql.user set password=PASSWORD('這裡改成你的密碼') where User='root'; 修改密碼的指令,然後推出再進入就行了

不行的話,還有解決方法二:

安裝Mysql後在終端輸入, mysql
成功啟動,退出,再輸入mysqladmin -u root password XXXXX, 出現錯誤:mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

如先輸入mysql,成功啟動後輸入use mysql,出現如下錯誤:Access denied for user ''@'localhost' to database 'mysql'

還有,輸mysql可以,輸mysql -u root就出錯了:
Access denied for user 'root'@'localhost' (using password: NO).

The reason is:
是昨日更新ROOT密碼時出錯
update user set password = '123456' where user ="root" //這樣寫是錯的,密碼其實不是123456
應該為update user set password = password ('123456') where user = "root"

具體操作步驟:
關閉mysql:
# service mysqld stop
然後:
# mysqld_safe --skip-grant-tables(該命令完成後,可能終端不會提示輸入下一命令,下面命令在新開的終端中實現)
啟動mysql:
# service mysqld start
mysql -u root
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD('xxx') WHERE user='root';
mysql> flush privileges;
mysql>\q

本篇隨筆詳細記錄了在CentOS6.4下通過yum安裝mysql數據庫以及對數據庫進行基本配置,在後續的Linux學習中將會堅持記錄自己的心得以及體會!!!!


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved