一、mysql_install_db說明
渭源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
當(dāng)MySQL的系統(tǒng)庫(mysql系統(tǒng)庫)發(fā)生故障或需要新加一個mysql實例時,需要初始化mysql數(shù)據(jù)庫。
需要使用的命令:/usr/local/mysql/bin/mysql_install_db
#/usr/local/mysql/bin/mysql_install_db --help 可以查看幫助信息如下
Usage: /usr/local/mysql/bin/mysql_install_db [OPTIONS]
--basedir=path The path to the MySQL installation directory.
--cross-bootstrap For internal use. Used when building the MySQL system
tables on a different host than the target.
--datadir=path The path to the MySQL data directory.
--force Causes mysql_install_db to run even if DNS does not
work. In that case, grant table entries that normally
use hostnames will use IP addresses.
--ldata=path The path to the MySQL data directory.
--rpm For internal use. This option is used by RPM files
during the MySQL installation process.
--skip-name-resolve Use IP addresses rather than hostnames when creating
grant table entries. This option can be useful if
your DNS does not work.
--srcdir=path For internal use. The directory under which
mysql_install_db looks for support files such as the
error message file and the file for popoulating the
help tables.
--user=user_name The login username to use for running mysqld. Files
and directories created by mysqld will be owned by this
user. You must be root to use this option. By default
mysqld runs using your current login name and files and
directories that it creates will be owned by you.
All other options are passed to the mysqld program
除了支持以上的參數(shù),還支持mysqld的參數(shù)。
二、舉例:
本文以新加一個mysql實例為例。例如服務(wù)器上已經(jīng)安裝了3306端口的mysql服務(wù),需要再啟一個3308端口的mysql服務(wù)。
假設(shè)mysql安裝在/usr/local/mysql路徑下,找一個磁盤空間剩余比較大的盤,如/data1,把3308端口的mysql的數(shù)據(jù)保存在/data1下
#mkdir /data1/mysql_3308
#mkdir /data1/mysql_3308/data
#chown -R mysql:mysql /data1/mysql_3308
復(fù)制一個mysql配置文件my.cnf到/data1/mysql_3308目錄下
#vi /data1/mysql_3308/my.cnf
修改配置文件,將端口和相關(guān)目錄的都改為新的設(shè)置,如下:
[client]
character-set-server = utf8
port = 3308
socket = /tmp/mysql_3308.sock
[mysqld]
user = mysql
port = 3308
socket = /tmp/mysql_3308.sock
basedir = /usr/local/mysql
datadir = /data1/mysql_3308/data
log-error = /data1/mysql_3308/mysql_error.log
pid-file = /data1/mysql_3308/mysql.pid
......其他略
確保配置文件無誤。
運行下面命令進(jìn)行數(shù)據(jù)庫的初始化:
#/usr/local/mysql/bin/mysql_install_db --defaults-file=/data1/mysql_3308/my.cnf --datadir=/data1/mysql_3308/data
完成后新的3308數(shù)據(jù)庫就初始化好了,如果有報錯,則按照報錯的提示查看報錯日志,一般情況下都是my.cnf配置文件的問題,修正后即可。
三、啟動新mysql
啟動3308端口的mysql服務(wù)
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data1/mysql_3309/my.cnf
檢查是否啟動
#ps aux|grep mysql
如果有3308字樣說明已經(jīng)啟動成功
可將啟動命令加入/etc/rc.local隨服務(wù)器啟動
新加的mysql沒有設(shè)置root密碼,可以通過下面命令設(shè)置root密碼:
#/usr/local/mysql/bin/mysqladmin -S /tmp/mysql_3308.sock -u root password 'new-password'
1、在我們的電腦上面找到mysql的安裝路徑,點擊進(jìn)去。
2、進(jìn)去之后可以看到my.ini在mysql安裝路徑的根目錄,這是其中一種情況。
3、另外一種情況是我們在mysql安裝目錄找不到,看到了my-default.ini文件,這時my.ini在“C:\ProgramData\MySQL\MySQL Server 5.6”目錄下面,我們首先需要找到ProgramData文件夾,這是一個隱藏文件,需要隱藏文件可見才行,或者可以直接檢索。
4、我們可以看到在“C:\ProgramData\MySQL\MySQL Server 5.6”目錄下面找到了my.ini文件。
5、我們右鍵my.ini文件,選擇打開方式,可以通過記事本和其他文本編輯器打開。
6、我們可以看到my.ini的文件打開了。
一、確認(rèn)MYSQL已經(jīng)配置且正確
重新配置?如果是重新安裝的MYSQL,請確認(rèn)安裝后的MYSQL經(jīng)過第一次配置,否則會缺少my.ini文件,配置方法,可以在安裝到最后一步時選擇,現(xiàn)在開始配置MYSQL,或在程序組中運行MYSQL配置向?qū)?。配置完成后,要確保my.ini文件中[mysqld]字段下至少有basedir安裝目錄路徑和datadir數(shù)據(jù)庫路徑。?配置之前,如果原來已經(jīng)有過MySQL配置,可以先在MYSQL向?qū)е羞M(jìn)行執(zhí)行一次REMOVE?INSTANCE,然后再重新配置。?覆蓋數(shù)據(jù)表?默認(rèn)的MYSQL數(shù)據(jù)庫會安裝到My?Document下,所以如果您的數(shù)據(jù)庫目錄在其它路徑下,可以先把MYSQL停止掉,然后把數(shù)據(jù)庫剪切到其它路徑,然后拷貝相關(guān)數(shù)據(jù)表進(jìn)入同一目錄即可。?如果MYSQL數(shù)據(jù)表使用不同的賬戶,還需要在MYSQL創(chuàng)建賬戶,或直接使用原來的MYSQL數(shù)據(jù)表覆蓋(需確認(rèn)之前的MSYQL數(shù)據(jù)表是未損壞的)。?解決無法啟動?遇到無法啟動MYSQL時常見解決方法:?A、先使用命令C:\Program?files\mysql\bin\mysqladmin-u?root?-p?shutdown來關(guān)閉MYSQL?B、再在cmd命令行下,執(zhí)行net?start?mysql啟動mysql。??二、1067錯誤常見解決方法?故障現(xiàn)象?如果在停止MYSQL(net?stop?mysql)或啟動MYSQL時,出現(xiàn)1067錯誤,錯誤信息“MySql?服務(wù)正在停止...系統(tǒng)出錯(A?system?error?has?occurred.)...系統(tǒng)發(fā)生?1067?錯誤(System?error?1067?has?occurred.),進(jìn)程意外終止(The?process?terminated?unexpectedly.)”等。?常見解決方法?如果以前一直運行OK的,請先按照上面的“無法啟動”解決方法執(zhí)行一次看看。?如果進(jìn)行過Remove?Instance操作,再次重建時后,一定要檢查my.ini文件中的datadir是否已被還原了,如果該地址下數(shù)據(jù)庫不存在,也將報告1067錯誤,只需要修改成真實的數(shù)據(jù)庫目錄地址,然后手動啟動即可。?檢查MYSQL目錄權(quán)限?檢查my.ini文件中[mysqld]字段下是否有basedir安裝目錄路徑和datadir數(shù)據(jù)庫路徑,my.ini可能需要出現(xiàn)在兩個地方,MYSQL的安裝目錄和Windows目錄(假設(shè)是windows環(huán)境)下,都要檢查一下。?有時候刪除%windir%/my.ini文件然后再重新配置也可以解決,再次配置后檢查一下Windir目錄下是否有my.ini文件,有時把安裝目錄下最新的my.ini拷貝過去覆蓋一下也能解決問題。?如果是Linux環(huán)境,試一下把mysql.server拷貝至/etc/rc.d/init.d/下,然后再運行chkconfig?mysql.server,之后就可以在命令行中設(shè)置PATH、使用命令執(zhí)行mysql啟動。??三、非法關(guān)機(jī)造成的MYSQL無法啟動問題?如果是因為非法關(guān)機(jī)等原因?qū)е翸YSQL無法啟動或啟動有問題的,最好使用重新安裝的或確認(rèn)是OK的MYSQL數(shù)據(jù)表及ibdata1、mysql.pid、ib_logfile0等文件進(jìn)行覆蓋,天緣試過遇到過多次這種情況,就是原來的MYSQL表有問題了,總是無法啟動,但是更換成新表就可以。??四、重裝MYSQL?發(fā)現(xiàn)MYSQL有問題時,最便捷的方法,是先把mysql卸載掉,然后重裝重新配置,具體方法如下:?1、卸載MYSQL,清理掉安裝目錄和Windows目錄下的my.ini文件。?2、檢查任務(wù)管理器中是否還有mysql進(jìn)程,如果有,可以把mysqld.exe殺掉,或者先殺掉再卸載也可以。?3、在cmd命令窗口,執(zhí)行:sc?delete?mysql,該命令是清理注冊服務(wù)命令。?3.?重裝?mysql?如果是安全設(shè)置以后出現(xiàn)這個問題,可能是因為mysql以低權(quán)限運行的時候因為密碼策略等問題導(dǎo)致,大家看惡意將mysql的啟動用戶更下下密碼,然后在服務(wù)項里設(shè)置下即可。
1先將mysql-noinstall-5.1.66-winx64.zip解壓縮到 d:\appspace\mysql
2將其中的data 文件夾移動到d:/appspace/mysqlData 即mysql的 data路徑為:d:/appspace/mysqlData/data
3my.ini配置文件有2個可選擇的位置:
打開E:\appSpace\mysql \ my-large.ini (如果后面mysql出現(xiàn)1067錯誤,啟動不了的話,可試著用my-huge.ini或其他), 在最后加上如下幾行,然后另存為my.ini(C:\Windows).
#--------------------------------------------------------
[mysqld]
basedir=d:/appspace/mysql
datadir=d:/appspace/mysqlData/data
default-character-set=utf8
[WinMySQLAdmin]
Server=d:/appspace/mysql/bin/mysqld.exe
#default-character-set=utf8
[client]
default-character-set=utf8
#--------------------------------------------------------
4可以在mysql中查看設(shè)定的字符集(一定要在[mysqld] 中設(shè)定utf-8):
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 | d:\appspace\mysql\share\charsets\ |
+--------------------------+-----------------------------------+
2 配置服務(wù)(命令行必須以administrator身份運行)
1)將MySQL 添加到服務(wù)中。
在Windows Run中輸入cmd,這時上面有提示(cmd.exe),右鍵單擊cmd.exe, 選擇Run as administrator,進(jìn)入路徑: d:/appspace/mysql /bin
輸入 mysqld --install MySQL --defaults-file="C:\Windows\my.ini"
要指定defaults-file.
命令行中輸入services.msc回車,可以看到MySQL已被添加到Services中,
Path to executable中的內(nèi)容為
d:\appspace\mysql\bin\mysqld --defaults-file=C:\windows\my.ini MySQL
2)啟動MySQL
在MySQL Service中點擊Start按鈕,或者在命令行(Run as administrator)中輸入 net start mysql.
如果出現(xiàn)1067錯誤,啟動不了,則重新檢查my.ini文件(前面有描述)
3)關(guān)閉MySQL
在MySQL Service中點擊Stop按鈕,或者在命令行(Run as administrator)中輸入 net stop mysql.
4)刪除mysql服務(wù)
mysqld –remove
3 環(huán)境變量
將d:\appspace\ mysql\bin添加到Path中。
1、解壓MySQL壓縮包
將下載的MySQL壓縮包解壓到自定義目錄下,解壓目錄是:
"D:\Program Files\mysql-5.7.11-winx64"
將解壓目錄下默認(rèn)文件 my-default.ini 拷貝一份,改名 my.ini
復(fù)制下面的配置信息到 my.ini 保存
#如果沒有my-default.ini,可新建my.ini或者從其他地方中獲取
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
#解壓目錄
basedir=D:\Program Files\mysql-5.7.11-winx64
#解壓目錄下data目錄
datadir=D:\Program Files\mysql-5.7.11-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
D:\Program Files\mysql-5.7.11-winx64\bin\mysqld.exe
2、添加環(huán)境變量
操作如下:
1)右鍵單擊我的電腦-屬性-高級系統(tǒng)設(shè)置(高級)-環(huán)境變量
點擊系統(tǒng)變量下的新建按鈕
輸入變量名:MYSQL_HOME
輸入變量值:D:\Program Files\mysql-5.7.11-winx64
#即為mysql的自定義解壓目錄。
2)選擇系統(tǒng)變量中的Path
點擊編輯按鈕
在變量值中添加變量值:;%MYSQL_HOME%\bin
注意是在原有變量值后面加上這個變量,用;隔開,不能刪除原來的變量值
3、 1)從控制臺進(jìn)入到MySQL解壓目錄下的 bin 目錄下:
2)輸入服務(wù)安裝命令:
1. mysqld --console
2. mysqld --initialize
3. mysqld install
安裝成功后會提示服務(wù)安裝成功。
#注: #執(zhí)行這幾步,是因為在MySQL5.7.9中沒有data文件夾,需要用這幾個命令產(chǎn)生data文件夾
#移除服務(wù)命令為:mysqld remove
4、啟動MySQL服務(wù)
方法一:
啟動服務(wù)命令為:net start mysql
方法二:
打開管理工具 服務(wù),找到MySQL服務(wù)。
通過右鍵選擇啟動或者直接點擊左邊的啟動來啟動服務(wù)。
5、修改 root 賬號的密碼
1. 修改MySQL的配置文件(my.ini),在[mysqld]下添加一行skip-grant-tables
2. mysql 重啟后,即可直接用 mysql -u root -p 進(jìn)入(此時密碼為空)
3. mysql update mysql.user set authentication_string=password('123qaz') where user='root' and Host = 'localhost';
4. mysql flush privileges;
5. mysql quit;
6. 將/etc/my.cnf文件還原(刪除skip-grant-tables這一行),重新啟動 mysql
7. 這個時候可以使用 mysql -u root -p '123qaz' 進(jìn)入了
8. mysqlSET PASSWORD = PASSWORD('123456'); 設(shè)置新密碼