本文目錄一覽:
- 1、linux 下mysql 服務無法開啟
- 2、linux 系統mysql 服務器內存利用率很高了怎麼解決
- 3、如何在linux下安裝mysql數據庫並配置
- 4、linux中mysql安裝完mysql啟動時報錯是怎麼回事?
- 5、linux下怎麼連接mysql數據庫
- 6、請問如何在linux下啟動mysql
linux 下mysql 服務無法開啟
linux 下mysql 服務無法開啟
1.可能是/usr/local/mysql/data/rekfan.pid文件沒有寫的權限
解決方法 :給予權限,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然後重新啟動mysqld!
2.可能進程里已經存在mysql進程
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進程,如果有使用“kill -9 進程號”殺死,然後重新啟動mysqld!
3.可能是第二次在機器上安裝mysql,有殘餘數據影響了服務的啟動。
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,把它刪除掉
linux 系統mysql 服務器內存利用率很高了怎麼解決
Linux 進程通過 C 標準庫中的內存分配函數 malloc 向系統申請內存,但是到真正與內核交互之間,其實還隔了一層,即內存分配管理器(memory allocator)。常見的內存分配器包括:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL 默認使用的是 glibc 的 ptmalloc 作為內存分配器。
內存分配器採用的是內存池的管理方式,處在用戶程序層和內核層之間,它響應用戶的分配請求,向操作系統申請內存,然後將其返回給用戶程序。
為了保持高效的分配,分配器通常會預先向操作系統申請一塊內存,當用戶程序申請和釋放內存的時候,分配器會將這些內存管理起來,並通過一些算法策略來判斷是否將其返回給操作系統。這樣做的最大好處就是可以避免用戶程序頻繁的調用系統來進行內存分配,使用戶程序在內存使用上更加高效快捷。
關於 ptmalloc 的內存分配原理,個人也不是非常了解,這裡就不班門弄斧了,有興趣的同學可以去看下華庭的《glibc 內存管理 ptmalloc 源代碼分析》【文末鏈接】。
關於如何選擇這三種內存分配器,網上資料大多都是推薦摒棄 glibc 原生的 ptmalloc,而改用 jemalloc 或者 tcmalloc 作為默認分配器。因為 ptmalloc 的主要問題其實是內存浪費、內存碎片、以及加鎖導致的性能問題,而 jemalloc 與 tcmalloc 對於內存碎片、多線程處理優化的更好。
目前 jemalloc 應用於 Firefox、FaceBook 等,並且是 MariaDB、Redis、Tengine 默認推薦的內存分配器,而 tcmalloc 則應用於 WebKit、Chrome 等。
如何在linux下安裝mysql數據庫並配置
在linux下安裝mysql數據庫並配置的流程比較繁瑣,需要耐心調試,具體方法和步驟如下:
1.查找以前是否安裝有mysql,使用下面命令:
rpm -qa|grep -i mysql
如果顯示有如下包則說明已安裝mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2.如果已安裝,則需要刪除已安裝的數據庫,使用以下命令來刪除數據庫
刪除命令: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
3.下載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服務器中。
4.安裝MySQL Server的rpm包
rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm
安裝完成後會生成root用戶的隨機密碼,請使用“cat /root/.mysql_secret”或類似命令進行查看。
5.安裝MySQL客戶端
rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
6.安裝MySQL開發依賴包
rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm
7.啟動msyql
安裝完成後mysql是沒有啟動的,運行mysql命令會提示如下錯誤:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
可使用如下命令啟動MySQL:
service mysql start
或者使用如下命令:
/etc/init.d/mysql start
可使用SET PASSWORD命令修改root用戶的密碼,參考如下:SET PASSWORD = PASSWORD(‘root123456’);
8.登錄MySQL
使用mysql命令登錄MySQL服務器,運行MySQL的命令時,會提示需要設置root用戶密碼。
9.設置開機自啟動
/etc/init.d/mysql start
設置完成後重啟系統,使用natstat –nat命令可看到MySQL的3306端口。
10.至此已經安裝好了mysql數據庫,當然現在我們的數據庫還不支持遠程連接,遠程連接會出現以下代碼:1130,ERROR 1130: Host 192.168.0.10 is not allowed to connect to this MySQL server,可以通過以下以下來解決。
11.改表法:在本機登入mysql後,更改“mysql”數據庫里的“user”表裡的“host”項,從”localhost”改為’%’。
mysql
mysqluse mysql;
mysqlselect ‘host’ from user where user=’root
12.到此為止,mysql數據庫在linux中安裝完畢。
linux中mysql安裝完mysql啟動時報錯是怎麼回事?
1、原因:可能是/usr/local/mysql/mysql.pid文件沒有寫的權限;
解決方法 :給予權限,執行 “chmod 775 /usr/local/mysql/ -R” 然後重新啟動mysqld。
2、原因:可能進程里已經存在mysql進程;
解決方法:用命令“ps
-ef|grep mysqld”查看是否有mysqld進程,如果有使用“kill -9 進程號”殺死,然後重新啟動mysqld。
3、原因:可能是第二次在機器上安裝mysql,有殘餘數據影響了服務的啟動;
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。
4、原因:mysql在啟動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir);
解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data。
5、原因:skip-federated字段問題;
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated字段,如果有就立即注釋掉吧。
6、原因:錯誤日誌目錄不存在;
解決方法:使用“chown” “chmod”命令賦予mysql所有者及權限。
7、原因:如果是centos系統,默認會開啟selinux;
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存盤退出重啟機器試試。
8、原因:log-bin路徑錯誤;
解決方法:查看對應數據庫下的error
log,例如我的數據庫為,/usr/local/mysql/var目錄,其下的localhost.localdomain.err為錯誤日誌,只要把其下的ib_logfile*刪除即可,重啟mysql即可。
一、Linux下MySQL的啟動與停止
1、Mysql啟動、停止、重啟常用命令
a、啟動方式
(1)使用 service 啟動:
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)
(2)使用 mysqld 腳本啟動:
/etc/inint.d/mysqld start
(3)使用 safe_mysqld 啟動:
safe_mysqld
b、停止方式
(1)使用 service 啟動:
service mysqld stop
(2)使用 mysqld 腳本啟動:
/etc/inint.d/mysqld stop
(3)mysqladmin shutdown
c、重啟方式
(1)使用 service 啟動:
service mysqld restart
service mysql restart (5.5.7版本命令)
(2)使用 mysqld 腳本啟動:
/etc/init.d/mysqld restart
linux下怎麼連接mysql數據庫
1、 首先確保linux下mysql安裝好,服務啟動完之後,就可以開始連接數據庫了。在終端輸入“mysql -hlocalhost -uroot -p”,其中h參數是主機名,這裡是本地就寫localhost,也可以省略:
2、輸入mysql的密碼之後就登錄了,也可以不輸入密碼登錄,比如這裡的root密碼是mysql123456,可以直接輸入“mysql -hlocalhost -uroot -pmysql123456”,此時就沒有提示輸入密碼,直接進入mysql的命令行中了:
3、此時顯示的就是mysql的命令行界面了,若要退出輸入quit就可以退出了。以上就是linux中連接數據庫的操作:
請問如何在linux下啟動mysql
首先是啟動服務。如果是redhat的話,可以使用setup或者ntsysv命令進入服務設置頁面後,將mysqld那項選中,然後保存退出。如果不是redhat沒有以上工具的話,可以使用chkconfig –level 35 mysqld on命令來開啟服務。當然,這只是要求每次系統啟動時啟動服務,為了不用重啟,需要使用/etc/init.d/mysqld start或者service mysqld start命令來使現在的服務啟動,如果是重啟服務的話,使用service ** restart。
我的mysql是裝系統時安裝的,你的應該是後來安裝的,但是應該也是可以通過上述方式打開的。
在終端中輸入mysql,看是否提示有這條命令,如果提示是command not found的話,應該是PATH變量的問題。解決的方法,可以將你安裝mysql的路徑也加入到PATH中,也可以將mysql中的需要執行的這些命令拷貝到PATH中。不過我mysql也是個菜鳥,真的不清楚有多少命令,所以建議把安裝路徑加入到PATH中,可以通過修改/etc/profile或者主目錄下.bashrc文件來實現。一個是全局,一個只針對本賬號。就是在文件中添加PATH=/usr/mysql:$PATH,位置無所謂,添進去應該就ok了。
然後輸入mysql命令看看有反映沒,如果沒反應,就在查查,我也沒這麼弄過,但是我估計應該好使。
最後是添加mysql的密碼了,默認時直接輸入mysql就可以進入了,所以要進行修改。輸入mysqladmin -u root password ***,就是給root添加密碼了,如果是修改的話,格式為mysqladmin -u root -p 舊密碼 password 新密碼。還有,我真的是個菜鳥,加密碼之前,其他賬號也可以使用mysql命令直接進入,加了之後其他帳戶可以使用mysql -uroot -p命令,然後輸入密碼進入(root也是以同樣的方法進入),但是我不知道怎麼添加別的帳戶,比如說其他賬戶tom使用mysql -utom -p來進入,不好意思了。
對了,設定密碼的時候,輸入的是明文,而由於bash會保留命令,最好清除一下.bash_history,不然別人用一下history命令就可以知道你的密碼是什麼了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/259544.html