mysql腳本linux
一、啟動方式
1、使用linux命令service 啟動:
service mysqld start
2、使用 mysqld 腳本啟動:
/etc/inint.d/mysqld start
3、使用 safe_mysqld 啟動:
safe_mysqld& 命令使用方法及介紹可如下查找:
㈡ linux怎麼啟動mysql
linux啟動mysql的方法:
1、使用linux命令service 啟動:service mysqld start
2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld start
3、使用 safe_mysqld 啟動:safe_mysqld&
linux停止的方法:
1、使用 service 啟動:service mysqld stop
2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
原文至:https://www.py.cn/db/mysql/17368.html
㈢ mysql隨Linux開機自動啟動
在MySQL的管理過程中 偶爾會遇到一些PC Server宕機或者重啟 這時我需要在主機啟動後再將MySQL服務啟動 一般情況下 這項工作都是簡單的 但是 當面臨上百台或者更多的MySQL主機的時候 這種 偶爾 可能會很多 這種 偶爾 還會在半夜或者凌晨發生 如果每次都手動操作 這是很繁瑣的 更重要的是 如果因此而打斷了凌晨的美夢是不值得的
要實現隨開啟自動啟動mysqld 我們需要搞定如下幾個問題
Linux開機自動啟動腳本放在哪兒?
一般的 作為伺服器使用的Linux一般會以 完全多用戶模式(Multi User Mode with Neorking) 級別來啟動 這種情況下Linux在啟動時會運行/etc/rc d/rc d/下的全部腳本 例如我們在這個目錄下會看到腳本 /etc/rc d/rc d/S crond 意味著開機啟動時會運行S crond腳本
Linux如何運行這些腳本?
既然已經知道自動啟動腳本該放在哪兒了 一切就好辦 我們只需要將一個啟動MySQL的腳本放過去就好了 下面是我們的一個簡單的啟動腳本v mysqldauto
$vi mysqldauto
#!/bin/sh
# Version: by
/opt/mysql/bin/mysqld_safe user=mysql & #這里需要修改為你的mysqld_safe目錄
$chmod +x mysqldauto
$mv mysqldauto /etc/rc d/init d/
$ln s /etc/rc d/init d/mysqldauto /etc/rc d/rc d/S mysqld
這樣我們就把創建的mysqldauto腳本放到了/etc/rc d/rc d/下面(注意這里使用了link的方式) mysqld可以自動啟動了
這有兩個問題需要解釋
* * * * * 為什麼不直接在目錄/etc/rc d/rc d/下創建文件 而要創建一個軟連接?這並不是必須的 但是這樣做是有很多好處的(後面會解釋) 不過這樣做至少會看起來更加專業
* * * * * 為什麼文件名要用S mysqld?這是規則 在rc d下面的腳本如果以字母S開頭 那麼執行時Linux會給它傳遞一個start參數(如果以字母K開頭 則會傳遞stop參數) S後面接個數字 表示了這個腳本的者哪啟動順序 如果目錄rc d下還有S *那麼它會在S 之前運行 (看到這兒 你可以猜測一下前面我們為什麼要創建軟連接了)
好了 自此你的mysqld就已經可以隨Linux開機自動啟動了
怎樣做更專業些?
上面這樣做 已經可以解決問題了 不過寫法多拍差少有些 山寨 下面我們看看怎樣改造一下
* * * * * 改造 處理參數start 既然前面提到以字首賀碼母S開頭的腳本會自動傳遞一個參數start K則會傳遞stop 那麼我再做如下修改
$vi mysqldauto
#!/bin/sh
# Version: by
MYSQLHOME=/opt/mysql #這里需要修改為你的mysql安裝目錄
if [ $# ge ];then
mysqldProc=`ps ef|grep E mysqld +safe |grep v grep |wc l`
if [ $ = stop ] ;then
if [ $mysqldProc eq ];then
$MYSQLHOME/bin/mysqladmin uroot shutdown
fi
elif [ $ = start ];then
if [ $mysqldProc eq ];then
$MYSQLHOME/bin/mysqld_safe user=mysql &
fi
fi
fi
做了如此改造後 我們腳本需要接收兩個參數start stop了 如果你想讓你mysqld在關閉主機的時候自動關閉 那麼stop參數就可以起作用了
$ln s /etc/rc d/init d/mysqldauto /etc/rc d/rc d/K mysqld
這里做軟連接好處就體現出來了 啟動和關閉只需要用一個腳本就可以了
* * * * * 改造 當你面臨幾十上百台主機的時候 MySQL的啟動參數可能會不一樣 例如備庫啟動時可能需要mysqld_safe –user=mysql –read_olny= & 這種情況怎麼辦呢?這里提供一個解決思路
lishixin/Article/program/MySQL/201311/29483
㈣ linux怎麼啟動mysql服務
1、首先,我們需要修改mysql的配置文件,一般文件存放在/etc下面,文件名為my.cnf。
㈤ linux環境下,如何實現異地備份mysql,腳本怎麼寫,已經實現本地自動備份
只要在這個備份腳本下增加一個異地傳輸功能即可。假定異地伺服器建立一個ftp伺服器。
則在本地Mysql備份腳本中將現有的文件打包,或者放置一個獨立目錄,然後上傳到Ftp伺服器即可。其他部分補齊即可。
ftp-n<<!
open$Dest_Server
user$FtpUserName$FtpPassword
binary
promptoff
cd/backpath
lcd/tmp
put"*.tar.gz"
bye
!
㈥ 緊急求助:linux 下面mysql啟動不了 my_print_defaults: command not found
linux 下面mysql啟動不了 my_print_defaults: command not found的原因是:
/etc/init.d/mysql這個MySQL的啟卜虧動腳本錯誤,MySQL是使用源代碼安裝的,一般會提示tarting MySQL Couldn't find MySQL manager or server(@bindir@/mysqld_safe)。
具體解決辦法:
鍵入如下命令:
cd <your MySQL install PATH>
cd bin
.mysqld_safe --user=mysql& #
(6)mysql腳本linux擴展閱讀:
mysql的其他報錯解決辦法:
1、Starting MySQL.Manager of pid-file quit without updating fi[失敗賣指]
關於這個錯誤原因有很多,最大的可能是沒有創建測試資料庫,可以用/usr/local/mysql/scripts/mysql_install_db –user=mysql命令進行創建;另外一個原因可能是許可權設置型配神問題,需要賦予mysql的data許可權,可以用chmod -R 命令。
2、FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from
within the directory the archive extracted into. If you compiled
MySQL yourself you must run 『make install』 first.
這個錯誤,是沒有指明mysql的data路徑導致的,可以很簡單的進行解決:
vim /etc/my.cnf
在[mysqld] 後面加上路徑:
basedir = /usr/local/mysql
datadir =/opt/data;
3、-bash: mysql: command not found
用mysql命令進行登陸mysql報錯,原因是沒有設置環境變數,需要設置,或者進入到bin目錄進行登陸cd /usr/local/mysql/bin
mysql -u root
㈦ Linux啟動/停止/重啟Mysql資料庫的方法
方法一:status;
方法二:select version();
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&
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 shell腳本執行mysql mysql資料庫在遠程伺服器上
方法一、適合所有格式的mysql資料庫,通過對資料庫導出導進寫個腳本定時執行:
1.導出整個資料庫 mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路徑/wcnc.sql
2.導出一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路徑/wcnc_users.sql
3.導出一個資料庫結構 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路徑/wcnc_db.sql
定義:
-d 沒有數據
--add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫 常用source 命令 進入mysql資料庫控制台:
如mysql -u root -p mysql>use 資料庫
方法二、針對mysql數據表格式為MyISAM的
假如數據文件在/var/lib/mysql
那麼直接寫個腳本
cp -r /var/lib/mysql /備份到的文件夾路徑
隔機備份用rsync增量,或定時完整備份。
㈨ 如何在linux下安裝mysql資料庫並配置
更多詳情請參考網路經驗,
http://jingyan..com/article/e4511cf33cdc992b845eafc2.html
或者,
http://blog.csdn.net/shuxiao9058/article/details/6658517
1、下載MySQL的安裝文件
安裝MySQL需要下面兩個文件:
MySQL-server-5.0.9-0.i386.rpm
MySQL-client-5.0.9-0.i386.rpm
下載地址為:http://dev.mysql.com/downloads/mysql/5.0.html,打開此網頁,下拉網頁找到「Linux x86 RPM downloads」項,找到「Server」和「Client programs」項,下載需要的上述兩個rpm文件。
2、安裝MySQL
rpm
文件是Red Hat公司開發的軟體安裝包,rpm可讓Linux在安裝軟體包時免除許多復雜的手續。該命令在安裝時常用的參數是 –ivh
,其中i表示將安裝指定的rmp軟體包,V表示安裝時的詳細信息,h表示在安裝期間出現「#」符號來顯示目前的安裝過程。這個符號將持續到安裝完成後才停
止。
1)安裝伺服器端
在有兩個rmp文件的目錄下運行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-5.0.9-0.i386.rpm
顯示如下信息。
warning: MySQL-server-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
。。。。。。(省略顯示)
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h test1 password 'new-password'
。。。。。。(省略顯示)
Starting mysqld daemon with databases from /var/lib/mysql
如出現如上信息,服務端安裝完畢。測試是否成功可運行netstat看Mysql埠是否打開,如打開表示服務已經啟動,安裝成功。Mysql默認的埠是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
上面顯示可以看出MySQL服務已經啟動。
2)安裝客戶端
運行如下命令:
[root@test1 local]# rpm -ivh MySQL-client-5.0.9-0.i386.rpm
warning: MySQL-client-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
顯示安裝完畢。
用下面的命令連接mysql,測試是否成功。
三、登錄MySQL
登錄MySQL的命令是mysql, mysql 的使用語法如下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 與 password 分別是 MySQL 的用戶名與密碼,mysql的初始管理帳號是root,沒有密碼,注意:這個root用戶不是Linux的系統用戶。MySQL默認用戶是root,由於初始沒有密碼,第一次進時只需鍵入mysql即可。
[root@test1 local]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
出現了「mysql>」提示符,恭喜你,安裝成功!
增加了密碼後的登錄格式如下:
mysql -u root -p
Enter password: (輸入密碼)
其中-u後跟的是用戶名,-p要求輸入密碼,回車後在輸入密碼處輸入密碼。
注意:這個mysql文件在/usr/bin目錄下,與後面講的啟動文件/etc/init.d/mysql不是一個文件。
四、MySQL的幾個重要目錄
MySQL安裝完成後不象SQL Server默認安裝在一個目錄,它的資料庫文件、配置文件和命令文件分別在不同的目錄,了解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較復雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。
下面就介紹一下這幾個目錄。
1、資料庫目錄
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3、相關命令
/usr/bin(mysqladmin mysqlmp等命令)
4、啟動腳本
/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)
五、修改登錄密碼
MySQL默認沒有密碼,安裝完畢增加密碼的重要性是不言而喻的。
1、命令
usr/bin/mysqladmin -u root password 'new-password'
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
2、例子
例1:給root加個密碼123456。
鍵入以下命令 :
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
註:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
3、測試是否修改成功
1)不用密碼登錄
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
顯示錯誤,說明密碼已經修改。
2)用修改後的密碼登錄
[root@test1 local]# mysql -u root -p
Enter password: (輸入修改後的密碼123456)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
成功!
這是通過mysqladmin命令修改口令,也可通過修改庫來更改口令。
六、啟動與停止
1、啟動
MySQL安裝完成後啟動文件mysql在/etc/init.d目錄下,在需要啟動時運行下面命令即可。
[root@test1 init.d]# /etc/init.d/mysql start
2、停止
/usr/bin/mysqladmin -u root -p shutdown
3、自動啟動
1)察看mysql是否在自動啟動列表中
[root@test1 local]# /sbin/chkconfig –list
2)把MySQL添加到你系統的啟動服務組裡面去
[root@test1 local]# /sbin/chkconfig – add mysql
3)把MySQL從啟動服務組裡面刪除。
[root@test1 local]# /sbin/chkconfig – del mysql
七、更改MySQL目錄
MySQL默認的數據文件存儲目錄為/var/lib/mysql。假如要把目錄移到/home/data下需要進行下面幾步:
1、home目錄下建立data目錄
cd /home
mkdir data
2、把MySQL服務進程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整個目錄移到/home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的數據文件移動到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、編輯MySQL的配置文件/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數據修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用「#」注釋此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL啟動腳本/etc/rc.d/init.d/mysql
最後,需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。
[root@test1 etc]# vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql (注釋此行)
datadir=/home/data/mysql (加上此行)
7、重新啟動MySQL服務
/etc/rc.d/init.d/mysql start
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
八、MySQL的常用操作
注意:MySQL中每個命令後都要以分號;結尾。
1、顯示資料庫
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.04 sec)
Mysql剛安裝完有兩個資料庫:mysql和test。mysql庫非常重要,它裡面有MySQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫中的相關表進行操作。
2、顯示資料庫中的表
mysql> use mysql; (打開庫,對每個庫進行操作就要打開此庫,類似於foxpro )
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
6 rows in set (0.01 sec)
3、顯示數據表的結構:
describe 表名;
4、顯示表中的記錄:
select * from 表名;
例如:顯示mysql庫中user表中的紀錄。所有能對MySQL用戶操作的用戶都在此表中。
Select * from user;
5、建庫:
create database 庫名;
例如:創建一個名字位aaa的庫
mysql> create databases aaa;
6、建表:
use 庫名;
create table 表名 (欄位設定列表);
例如:在剛創建的aaa庫中建立表name,表中有id(序號,自動增長),xm(姓名),xb(性別),csny(出身年月)四個欄位
use aaa;
mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
可以用describe命令察看剛建立的表結構。
mysql> describe name;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(3) | | PRI | NULL | auto_increment |
| xm | char(8) | YES | | NULL | |
| xb | char(2) | YES | | NULL | |
| csny | date | YES | | NULL | |
+-------+---------+------+-----+---------+----------------+
7、增加記錄
例如:增加幾條相關紀錄。
mysql> insert into name values('','張三','男','1971-10-01');
mysql> insert into name values('','白雲','女','1972-05-20');
可用select命令來驗證結果。
mysql> select * from name;
+----+------+------+------------+
| id | xm | xb | csny |
+----+------+------+------------+
| 1 | 張三 | 男 | 1971-10-01 |
| 2 | 白雲 | 女 | 1972-05-20 |
+----+------+------+------------+
8、修改紀錄
例如:將張三的出生年月改為1971-01-10
mysql> update name set csny='1971-01-10' where xm='張三';
9、刪除紀錄
例如:刪除張三的紀錄。
mysql> delete from name where xm='張三';
10、刪庫和刪表
drop database 庫名;
drop table 表名;
九、增加MySQL用戶
格式:grant select on 資料庫.* to 用戶名@登錄主機 identified by "密碼"
例1、增加一個用戶user_1密碼為123,讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root用戶連入MySQL,然後鍵入以下命令:
mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
例1增加的用戶是十分危險的,如果知道了user_1的密碼,那麼他就可以在網上的任何一台電腦上登錄你的MySQL資料庫並對你的數據為所欲為了,解決辦法見例2。
例
2、增加一個用戶user_2密碼為123,讓此用戶只可以在localhost上登錄,並可以對資料庫aaa進行查詢、插入、修改、刪除的操作
(localhost指本地主機,即MySQL資料庫所在的那台主機),這樣用戶即使用知道user_2的密碼,他也無法從網上直接訪問資料庫,只能通過
MYSQL主機來操作aaa庫。
mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";
用新增的用戶如果登錄不了MySQL,在登錄時用如下命令:
mysql -u user_1 -p -h 192.168.113.50 (-h後跟的是要登錄主機的ip地址)
十、備份與恢復
1、備份
例如:將上例創建的aaa庫備份到文件back_aaa中
[root@test1 root]# cd /home/data/mysql (進入到庫目錄,本例庫已由val/lib/mysql轉到/home/data/mysql,見上述第七部分內容)
[root@test1 mysql]# mysqlmp -u root -p --opt aaa > back_aaa
2、恢復
[root@test mysql]# mysql -u root -p ccc < back_aaa
另外操作:修改mysql字元編碼成為UTF8
啟動mysql後,以root登錄mysql
isher@isher-ubuntu:~$ mysql -u root
>show variables like 'character%'; #執行編碼顯示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在某些時候,我們續要修改mysql默認資料庫的編碼,以保證某些遷移的程序可以正常顯示,編輯my.cnf文件進行編碼修改,windows可以直接用Mysql Server Instance Config Wizard 進行設置
在linux下修改3個my.cnf的1個/etc/mysql/my.cnf文件
找到客戶端配置[client] 在下面添加
default-character-set=utf8 默認字元集為utf8
在找到[mysqld] 添加
default-character-set=utf8 默認字元集為utf8
init_connect='SET NAMES utf8' (設定連接mysql資料庫時使用utf8編碼,以讓mysql資料庫為utf8運行)
修改好後,重新啟動mysql 即可,查詢一下show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
此方法用於標准mysql版本同樣有效,對於/etc/my.cnf文件,需要從mysql/support-files的文件夾cp my-large.cnf一份到/etc/my.cnf。
㈩ linux系統shell腳本去除mysql報錯信息
shell腳本中執行mysql 語句
去除warning using a password on the command line interface can be insecure信息
使用mysql參數的方法
mysql -u pass -D $db -e "select host from user;"
如
/usr/local/u-mail/service/mysql/bin/mysql -uumail -p cat /usr/local/u-mail/config/納喚消mysql_password.conf -e 'use umail;select count(*) from core_mailbox where domain="comingchina.net";'
可以使用
2>&1 |grep -v Warning
2>&1 的意思就是將標准錯誤重定向到標准輸出。然後在使用 grep -v去除
& 1 1標識標准輸出鏈腔,stdout。
2 表示標洞知准錯誤,stderr。