Mysql基本管理知識

數據庫的啓動 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                             (推薦) 
3kill -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用戶對一個或多個表單獨行的操做
相關文章
相關標籤/搜索