日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...

發(fā)布時間:2024/7/23 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件。

MySQL是一種關系數(shù)據(jù)庫管理系統(tǒng),關系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

MySQL是一種關系數(shù)據(jù)庫管理系統(tǒng),關系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

MySQL

關于如何更改datadir目錄的問題:

ubuntu默認安裝mysql的時候,會將datadir設置為

/var/lib/mysql

下面,但是我們大多數(shù)時候都需要指定一個我們準備好的方便查找的目錄為數(shù)據(jù)存儲目錄,我們可以在

my.cnf

下面更改

datadir

這一行,將'

=

'后邊的目錄更改成我們自己的目錄即可。

例如:我將datadir改成

/data

下,則在my.cnf中做如下更改,在

[mysqld]

port = 3306

basedir = /usr

datadir = /data/mysql

更改完成保存退出,可以重啟mysql服務了,不知道您的服務器會不會報錯,我的反正mysql是起不來了。只要將datadir換回來就能啟動。出現(xiàn)這個問題的原因是在ubuntu中存在一個apparmor的服務。

這個服務主要作用是主要的作用是設置某個可執(zhí)行程序的訪問控制權限,可以限制程序 讀/寫某個目錄/文件,打開/讀/寫網(wǎng)絡端口等等。(原來,我們雖然講新的目錄所有者改為了mysql,但我們沒有告訴mysql要給新的目錄什么權限,于是就悲劇了)

他的配置文件在

/etc/apparmor.d/

中,在這里我們可以看到一個

usr.sbin.mysqld

的配置文件,打開看一下就明白了。我們的日志路徑、pid路徑等等都存放在這里,所以我們要改datadir路徑,這里也需要做更改,要更改log路徑同樣也要在這里更改。更改后配置如下:

/logs/mysql/mysql.log rw,

/logs/mysql/mysql.err.log rw,

/data/mysql/ r,

/data/mysql/** rwk,

/logs/mysql/ r,

/logs/mysql/* rw,

這是我更改過的路徑。更改完成以后,因為這是一個服務,所以我們需要重啟一下這個服務。

/etc/init.d/apparmor restart

這里基本上不會存在問題了,(我就是在這里重啟了一下服務器,就OK了),如果還是無法啟動你的mysql,那么請使用如下命令

mysql_install_db --datadir=/data/mysql

查看一下是不是有報錯信息,根據(jù)錯誤排查一下。

最終按照這個方法解決了問題。真是多謝前輩。

最后本人做個總結(jié),只作為一種嘗試解決方案:

將mysql默認的datadir目錄"/var/lib/mysql"改為 "/home/mysql_data"

1、關掉數(shù)據(jù)庫

sudo /etc/init.d/mysql stop

2、因為我們指定的數(shù)據(jù)庫文件目錄為/home/mysql_data

cd /home //打開home

mkdir mysql_data //創(chuàng)建目錄

chown mysql:mysql mysql_data //并修改其擁有者及所屬群組為mysql:mysql.命令

//修改mysql配置文件my.cnf:

將 datadir=/var/lib/mysql 改為 datadir=/home/mysql_data

3、修改ubuntu中的安全設置

sudo gedit /etc/apparmor.d/usr.sbin.mysqld

在這個文件里面加入權限設定,將原來的

/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

更換成(或直接添加)

/home/mysql_data/mysql/ r,

/home/mysql_data/mysql/** rwk,

4、重新初始化數(shù)據(jù)文件:執(zhí)行

sudo mysql_install_data

5、啟動mysql數(shù)據(jù)庫服務(或重啟服務器):

sudo /etc/init.d/mysql start

這個方法中最值得一提是修改

/etc/apparmor.d/usr.sbin.mysqld

這個文件,改變應用程序的權限。

MySQL索引實現(xiàn)

在MySQL中,索引屬于存儲引擎級別的概念,不同存儲引擎對索引的實現(xiàn)方式是不同的,本文主要討論MyISAM和InnoDB兩個存儲引擎的索引實現(xiàn)方式。

MyISAM索引實現(xiàn)

MyISAM引擎使用B+Tree作為索引結(jié)構,葉節(jié)點的data域存放的是數(shù)據(jù)記錄的地址。下圖是MyISAM索引的原理圖:

圖1

這里設表一共有三列,假設我們以Col1為主鍵,則圖8是一個MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件僅僅保存數(shù)據(jù)記錄的地址。在MyISAM中,主索引和輔助索引(Secondary key)在結(jié)構上沒有任何區(qū)別,只是主索引要求key是唯一的,而輔助索引的key可以重復。如果我們在Col2上建立一個輔助索引,則此索引的結(jié)構如下圖所示:

圖2

同樣也是一顆B+Tree,data域保存數(shù)據(jù)記錄的地址。因此,MyISAM中索引檢索的算法為首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,則取出其data域的值,然后以data域的值為地址,讀取相應數(shù)據(jù)記錄。

MyISAM的索引方式也叫做“非聚集”的,之所以這么稱呼是為了與InnoDB的聚集索引區(qū)分。

總結(jié)

以 上就是我對Java開發(fā)如何更改MySQL數(shù)據(jù)庫datadir目錄之MySQL數(shù)據(jù)庫索引實現(xiàn)問題及其優(yōu)化總結(jié),分享給大家,覺得收獲的話可以點個關注收藏轉(zhuǎn)發(fā)一波喔,謝謝大佬們支持!

最后,每一位讀到這里的網(wǎng)友,感謝你們能耐心地看完。希望在成為一名更優(yōu)秀的Java程序員的道路上,我們可以一起學習、一起進步!都能贏取白富美,走向架構師的人生巔峰!

想了解學習Java方面的技術內(nèi)容以及Java技術視頻的內(nèi)容可加群:722040762 驗證碼:頭條(06 必過)歡迎大家的加入喲!

總結(jié)

以上是生活随笔為你收集整理的java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。