關於linux修改mysql數據庫的信息

本文目錄一覽:

linux怎麼修改mysql數據庫臨時表空間大小

先來說說臨時表的概念。 臨時表顧名思義,就是臨時的,用完銷毀掉的表。 數據既可以保存在臨時的文件系統上,也可以保存在固定的磁盤文件系統上。 臨時表有下面幾種:

1全局臨時表

這種臨時表從數據庫實例啟動後開始生效,在數據庫實例銷毀後失效。在MySQL裏面這種臨時表對應的是內存表,即memory引擎。

2會話級別臨時表

這種臨時表在用戶登錄系統成功後生效,在用戶退出時失效。在MySQL里的臨時表指的就是以 create temporary table 這樣的關鍵詞創建的表。

3事務級別臨時表

這種臨時表在事務開始時生效,事務提交或者回滾後失效。 在MySQL裏面沒有這種臨時表,必須利用會話級別的臨時表間接實現。

4檢索級別臨時表

這種臨時表在SQL語句執行之間產生,執行完畢後失效。 在MySQL裏面這種臨時表不是很固定,跟隨MySQL默認存儲引擎來變化。比如默認存儲引擎是MyISAM,臨時表的引擎就是MyISAM,並且文件生成形式以及數據運作形式和MyISAM一樣,只是數據保存在內存里;如果默認引擎是INNODB,那麼臨時表的引擎就是INNODB,此時它的所有信息都保存在共享表空間ibdata裏面。

MySQL 5.7對於InnoDB存儲引擎的臨時表空間做了優化。在MySQL 5.7之前,INNODB引擎的臨時表都保存在ibdata裏面,而ibdata的貪婪式磁盤佔用導致臨時表的創建與刪除對其他正常表產生非常大的性能影響。在MySQL5.7中,對於臨時表做了下面兩個重要方面的優化:

MySQL5.7 把臨時表的數據以及回滾信息(僅限於未壓縮表)從共享表空間裏面剝離出來,形成自己單獨的表空間,參數為innodb_temp_data_file_path。

在MySQL5.7 中把臨時表的相關檢索信息保存在系統信息表中:information_schema.innodb_temp_table_info. 而MySQL 5.7之前的版本想要查看臨時表的系統信息是沒有太好的辦法。

需要注意的一點就是,雖然INNODB臨時表有自己的表空間,但是目前還不能自己定義臨時表空間文件的保存路徑,只能是繼承innodb_data_home_dir。此時如果想要拿其他的磁盤,比如內存盤來充當臨時表空間的保存地址,只能用老辦法,做軟鏈。舉個小例子:

我現在用的OS是 Ubuntu12.X,想用tmpfs文件系統充當臨時表空間,

root@ytt-master-VirtualBox:/usr/local/mysql/data# ln -s/run/shm/ /usr/local/mysql/data/tmp_space2

root@ytt-master-VirtualBox:/usr/local/mysql/data#ls -l | grep ‘shm’

lrwxrwxrwx1 root root 9 Nov 13 10:28tmp_space2 – /run/shm/

然後把

innodb_temp_data_file_path=tmp_space2/ibtmp2:200M:autoextend

添加到my.cnf里的[mysqld]下面一行

重啟MySQL服務後,

mysqlselect @@innodb_temp_data_file_path\G

***************************1. row ***************************

@@innodb_temp_data_file_path:tmp_space2/ibtmp2:200M:autoextend

1 rowin set (0.00 sec)

先寫一個批量創建臨時表的存儲過程:

DELIMITER$$

USE`t_girl`$$

DROPPROCEDURE IF EXISTS `sp_create_temporary_table`$$

CREATEDEFINER=`root`@`localhost` PROCEDURE `sp_create_temporary_table`(

IN f_cnt INT UNSIGNED )

BEGIN

DECLARE i INT UNSIGNED DEFAULT 1;

WHILE i = f_cnt

DO

SET @stmt = CONCAT(‘create temporarytable tmp’,i,’ ( id int, tmp_desc varchar(60));’);

PREPARE s1 FROM @stmt;

EXECUTE s1;

SET i = i + 1;

END WHILE;

DROP PREPARE s1;

END$$

DELIMITER;

現在來創建10張臨時表:

mysqlcall sp_create_temporary_table(10);

QueryOK, 0 rows affected (0.07 sec)

如果在以前,我們只知道創建了10張臨時表,但是只能憑記憶或者手工記錄下來臨時表的名字等信息。

現在可以直接從數據字典裏面檢索相關數據。

mysql select * frominformation_schema.innodb_temp_table_info;

+———-+————–+——–+——-+———————-+—————+

|TABLE_ID | NAME | N_COLS | SPACE| PER_TABLE_TABLESPACE | IS_COMPRESSED |

+———-+————–+——–+——-+———————-+—————+

| 56 | #sql1705_2_9 | 5 | 36 | FALSE | FALSE |

| 55 | #sql1705_2_8 | 5 | 36 | FALSE |FALSE |

| 54 | #sql1705_2_7 | 5 | 36 | FALSE | FALSE |

| 53 | #sql1705_2_6 | 5 | 36 | FALSE | FALSE |

| 52 | #sql1705_2_5 | 5 | 36 | FALSE |FALSE |

| 51 | #sql1705_2_4 | 5 | 36 | FALSE | FALSE |

| 50 | #sql1705_2_3 | 5 | 36 | FALSE | FALSE |

| 49 | #sql1705_2_2 | 5 | 36 | FALSE |FALSE |

| 48 | #sql1705_2_1 | 5 | 36 | FALSE | FALSE |

| 47 | #sql1705_2_0 | 5 | 36 | FALSE | FALSE |

+———-+————–+——–+——-+———————-+—————+

10rows in set (0.00 sec)

功能性我就寫到這裡,大家性能方面如果有興趣可以找時間去測試。

linux系統mysql數據庫怎麼修改數據庫存放路徑

mnt目錄下建立mysql_data目錄

#cd /mnt

#mkdir mysql_data

把MySQL服務服務停掉。

#service mysql stop

把/var/lib/mysql整個目錄移到/mnt/mysql_data。

#mv /usr/local/mysql/data /mnt/mysql_data

重新設置數據權限。

#cd /mnt/mysql_data

修改my.cnf配置文件

#vi /etc/my.cnf

指明mysql.sock文件的產生位置。用符號#注釋掉原來socket,

修改MySQL啟動腳本。

#vi /etc/init.d/mysql

找到datadir。

datadir = /mnt/mysql_data

7

重啟mysql服務

#service mysql start

好了,至此數據庫目錄位置已遷移完畢。

如何修改Linux服務器的MySQL數據庫root密碼

分兩種情況

一、擁有原來的myql的root的密碼;

方法一:

在mysql系統外,使用mysqladmin

# mysqladmin -u root -p password “test123”

Enter password: 【輸入原來的密碼】

方法二:

通過登錄mysql系統,

# mysql -uroot -p

Enter password: 【輸入原來的密碼】

mysqluse mysql;

mysql update user set password=passworD(“test”) where user=’root’;

mysql flush privileges;

mysql exit;

二、忘記原來的myql的root的密碼;

首先,你必須要有操作系統的root權限了。要是連繫統的root權限都沒有的話,先考慮root系統再走下面的步驟。

類似於安全模式登錄系統,有人建議說是pkill mysql,但是我不建議哈。因為當你執行了這個命令後,會導致這樣的狀況:

/etc/init.d/mysqld status

mysqld dead but subsys locked

這樣即使你是在安全模式下啟動mysql都未必會有用的,所以一般是這樣/etc/init.d/mysqld stop,如果你不幸先用了pkill,那麼就start一下再stop咯。

# mysqld_safe –skip-grant-tables

,表示在後台運行,不再後台運行的話,就再打開一個終端咯。

# mysql

mysql use mysql;

mysql UPDATE user SET password=password(“test123”) WHERE user=’root’;

mysql flush privileges;

mysql exit;

##本來mysql是不分大小寫的,但是這個是修改的mysql中的mysql數據庫的具體的值,要注意到。

如何在linux系統修改mysql數據庫

查找以前是否安裝有mysql,使用下面命令:

rpm -qa|grep -i mysql

如果顯示有如下包則說明已安裝mysql

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

如果已安裝,則需要刪除已安裝的數據庫,使用以下命令來刪除數據庫

刪除命令:rpm -e –nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

刪除老版本mysql的開發頭文件和庫

命令:rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸載後/var/lib/mysql中的數據及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

下載mysql的rpm包

可以通過wget下載具體的地址因為不能用鏈接請大家去官網去找

(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服務器;

(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客戶端;

(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql開發依賴包。

下載後放到Liunx服務器中,如圖所示

安裝MySQL Server的rpm包

rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm

安裝過程如圖所示

安裝完成後會生成root用戶的隨機密碼,請使用「cat /root/.mysql_secret」或類似命令進行查看。

如何修改linux服務器上的mysql數據庫密碼

1. 首先用管理員權限登陸Linux;

2. 輸入:vi /etc/my.cnf 回車。然後按「i」鍵盤,在這個文件中的最後一行輸入:skip-grant-tables

然後按 esc鍵,然後輸入「:wq」保存並退出;

3.重啟MySQL服務

輸入:service mysqld restart回車;

4.輸入 mysql -uroot -p;然後提示你輸入密碼,直接回車就可以進入mysql數據庫了!

原創文章,作者:Q1YP7,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129220.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
Q1YP7的頭像Q1YP7
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28

發表回復

登錄後才能評論