數據庫的啓動 node
[root@node80 ~]# /etc/init.d/mysqld start #mysqld是從安裝包拷貝的mysql.server
Starting MySQL. SUCCESS!
mysql啓動基本原理 mysql
/etc/init.d/mysqld是個shell腳本,啓動時調用mysqld_safe腳本,最後調用mysqld主程序啓動mysql, 以下,/etc/init.d/mysqld腳本中調用mysqld_safe $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & [root@node80 ~]# ps -ef | grep mysql | grep -v grep root 50043 1 0 00:18 pts/0 00:00:00 /bin/sh /usr/local/mysql5.5.49/bin/mysqld_safe --datadir=/data --pid-file=/data/node80.pid mysql 50733 50043 0 00:18 pts/0 00:00:07 /usr/local/mysql5.5.49/bin/mysqld --basedir=/usr/local/mysql5.5.49 --datadir=/data --plugin-dir=/usr/local/mysql5.5.49/lib/plugin --user=mysql --log-error=/data/node80.err --open-files-limit=8192 --pid-file=/data/node80.pid --socket=/usr/local/mysql5.5.49/tmp/mysqld.sock --port=3306
關閉數據庫的方法linux
1、mysqladmin -u root -ppassword shutdown 優雅關閉(推薦) (多實例腳本中也使用這個) 2、/etc/init.d/mysql stop (推薦) 3、kill -USER2 ‘cat path/pid’帶kill的儘可能不用
強制關閉數據庫的方法(致使沒法啓動,數據丟失)sql
killall mysqld (實在不行了才嘗試) pkill mysqld killall -9 mysqld 直到mysqld: no process killed kill -9 pid
多實例的啓動與關閉 (能夠寫腳本)shell
啓動 /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null & 關閉 ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
爲管理員設置密碼 數據庫
方法1、mysqladmin修改 mysqladmin -u root password 'password' #新裝時 mysqladmin -uroot -poldpassword password 'newpassword' 方法二、登錄數據庫修改 mysql>update mysql.user set password=password("newpassword") where user="root" and host="localhost"; #(必須指定條件及password加密) mysql>flush privileges; 方法三、密碼找回時不能用此種 mysql>set password=password("newpassword"); mysql>flush privileges; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
Mysql登錄方法 mysql bash
mysql -uroot #剛裝完無密碼 mysql -u root -p #剛裝完無密碼。多實例登錄 -S socket指定文件 標準的dba命令行登錄,若是使用腳本,密碼寫入腳本,權限應設成700或加密 mysql -u root -ppassword明文方式 明文方式有隱患,在用history能夠查到,而且在/root下的history也有記錄,因此能夠強制linux不記錄歷史敏感命令#HISCONTROL=ignorespace (man bash)
mysql提示符(用於區分生產或測試環境。運維要求,好比查看ip地址確認環境,備份再操做)運維
1、prompt \\u@gtms \r:\m:\s: 臨時的 2、將上述命令放置在my.cnf的[mysql]下
找回丟失的root密碼步驟socket
1、關閉數據庫 /etc/init.d/mysql stop 2、使用--skip-grant-tables啓動mysql,忽略受權登錄驗證 mysqld_safe --skip-grant-tables --user=mysql & mysql =====>登錄時密碼爲空 mysql>update mysql.user set password=password("newpassword") where user='root'
多實例找回丟失的root密碼步驟測試
1、關閉mysql #mysqladmin -uroot -prootabcd -S /data/3306/mysql.sock shutdown 2、啓動時加參數 啓動#mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables & 登錄#mysql -uroot -p -S /data/3306/mysql.sock /*登錄時空密碼 三、修改密碼的方法 mysql>update mysql.user set password=password("newpassword") where user='root' mysql>flush privileges;
MySQL幫助命令
help help
help show 獲取show命令相關
help grant 獲取grant命令相關,創建超級管理員時加with grant option;
help create table
help create database
help alter table
help create index
.......
sq語言的分類
1、*數據查詢語言DQL select類 2、*數據庫操做語言DML select insert update delete類 3、事物處理語言TPL 確保被DML語句影響的表的全部行及時獲得更新。包括begin transaction commit和rollback 4、*數據控制語言DCL grant\revoke、commit,rollback 5、*數據定義語言DDL create、drop、alter 6、指針控制語言 像declare cursor、fetch into和update where current用戶對一個或多個表單獨行的操做