Mysql一個熟悉的概念,一個全新的知識領域。開始我全方位資料庫學習之旅。
一切,從安裝開始,自己動手每一步。
Linux在安裝的過程中,可以勾選Mysql的安裝,但是安裝的版本是Mysql-5.1.73,版本非常低。必須重新安裝,目前最新版本是5.7。但是解除安裝再安裝,明顯比空白Linux安裝麻煩一點。
下面開始解除安裝/安裝過程。
1. Mysql下載下傳位址
1
<code>https://dev.mysql.com/downloads/file/?id=469494</code>
2. 确認OS版本
2
3
<code># more /etc/issue</code>
<code>CentOS release 6.7 (Final)</code>
<code>Kernel \r </code><code>on</code> <code>an \m</code>
4
5
6
<code># lsb_release -a</code>
<code>LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch</code>
<code>Distributor ID: CentOS</code>
<code>Description: CentOS release 6.7 (Final)</code>
<code>Release: 6.7</code>
<code>Codename: Final</code>
3. 根據OS版本,找到需要下載下傳的Mysql版本,右鍵“将連結另存為”,即可獲得下載下傳位址
<a href="https://s2.51cto.com/wyfs02/M02/9B/CB/wKiom1lnJfny6OMnAAFkFpwtApI810.png-wh_500x0-wm_3-wmp_4-s_2046162689.png" target="_blank"></a>
4. 到Linux下,通過wget下載下傳
<code>wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.18-1.el6.x86_64.rpm</code>
下面三個rpm包存在依賴關系,也需要下載下傳
<code># wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.18-1.el6.x86_64.rpm</code>
<code># wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.18-1.el6.x86_64.rpm</code>
<code># wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.18-1.el6.x86_64.rpm</code>
5. 檢查查詢發現,已經安裝Mysql-5.1.73,版本非常低。必須重新安裝,目前最新版本是5.7
<code># rpm -qa | grep mysql</code>
<code>mysql-server-5.1.73-5.el6_6.x86_64</code>
<code>mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>mysql-5.1.73-5.el6_6.x86_64</code>
<code>mysql-connector-odbc-5.1.5r1144-7.el6.x86_64</code>
6. 準備安裝,安裝前,就懷疑,會不會覆寫?會不會沖突?安裝一下試試,就知道了。
同時安裝4個rpm包
<code># rpm -ivh mysql-community-server-5.7.18-1.el6.x86_64.rpm mysql-community-client-5.7.18-1.el6.x86_64.rpm mysql-community-common-5.7.18-1.el6.x86_64.rpm mysql-community-libs-5.7.18-1.el6.x86_64.rpm</code>
7. 果然沖突了
7
8
<code>warning: mysql-community-server-5.7.18-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, </code><code>key</code> <code>ID 5072e1f5: NOKEY</code>
<code>Preparing... ########################################### [100%]</code>
<code>file /usr/share/mysql/czech/errmsg.sys </code><code>from</code> <code>install </code><code>of</code> <code>mysql-community-common-5.7.18-1.el6.x86_64 conflicts </code><code>with</code> <code>file </code><code>from</code> <code>package mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>file /usr/share/mysql/danish/errmsg.sys </code><code>from</code> <code>install </code><code>of</code> <code>mysql-community-common-5.7.18-1.el6.x86_64 conflicts </code><code>with</code> <code>file </code><code>from</code> <code>package mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>file /usr/share/mysql/dutch/errmsg.sys </code><code>from</code> <code>install </code><code>of</code> <code>mysql-community-common-5.7.18-1.el6.x86_64 conflicts </code><code>with</code> <code>file </code><code>from</code> <code>package mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>file /usr/share/mysql/english/errmsg.sys </code><code>from</code> <code>install </code><code>of</code> <code>mysql-community-common-5.7.18-1.el6.x86_64 conflicts </code><code>with</code> <code>file </code><code>from</code> <code>package mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>file /usr/share/mysql/estonian/errmsg.sys </code><code>from</code> <code>install </code><code>of</code> <code>mysql-community-common-5.7.18-1.el6.x86_64 conflicts </code><code>with</code> <code>file </code><code>from</code> <code>package mysql-libs-5.1.73-5.el6_6.x86_64</code>
<code>......</code>
8. 經過查詢,也安裝失敗了,還是5.1.73版本
<code># rpm -qa|grep mysql</code>
9. 開始解除安裝原有的5.1.73的Mysql,幾種解除安裝方式,首推YUM方式解除安裝
<code># yum remove mysql</code>
<code># rpm -e mysql // 普通删除模式 </code>
<code># rpm -e </code><code>--nodeps mysql // 強力删除模式,如果使用上面指令删除時,提示有依賴的其它檔案,則用該指令可以對其進行強力删除</code>
10 .還剩餘下面兩個包
11. 執行yum localinstall安裝,發現需要解除安裝mysql-libs-5.1.73-5.el6_6.x86_64,通過yun解除安裝這個包後,可以安裝了。
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<code># yum localinstall mysql-community-server-5.7.18-1.el6.x86_64.rpm mysql-community-client-5.7.18-1.el6.x86_64.rpm mysql-community-common-5.7.18-1.el6.x86_64.rpm mysql-community-libs-5.7.18-</code>
<code>1.el6.x86_64.rpm</code>
<code>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</code>
<code>Loaded plugins: fastestmirror, refresh-packagekit, security</code>
<code>Setting up </code><code>Local</code> <code>Package Process</code>
<code>Examining mysql-community-server-5.7.18-1.el6.x86_64.rpm: mysql-community-server-5.7.18-1.el6.x86_64</code>
<code>Marking mysql-community-server-5.7.18-1.el6.x86_64.rpm </code><code>to</code> <code>be installed</code>
<code>Loading mirror speeds </code><code>from</code> <code>cached hostfile</code>
<code>* base: mirrors.163.com</code>
<code>* extras: mirrors.cn99.com</code>
<code>* updates: mirrors.163.com</code>
<code>Examining mysql-community-client-5.7.18-1.el6.x86_64.rpm: mysql-community-client-5.7.18-1.el6.x86_64</code>
<code>Marking mysql-community-client-5.7.18-1.el6.x86_64.rpm </code><code>to</code> <code>be installed</code>
<code>Examining mysql-community-common-5.7.18-1.el6.x86_64.rpm: mysql-community-common-5.7.18-1.el6.x86_64</code>
<code>Marking mysql-community-common-5.7.18-1.el6.x86_64.rpm </code><code>to</code> <code>be installed</code>
<code>Examining mysql-community-libs-5.7.18-1.el6.x86_64.rpm: mysql-community-libs-5.7.18-1.el6.x86_64</code>
<code>Marking mysql-community-libs-5.7.18-1.el6.x86_64.rpm </code><code>to</code> <code>be installed</code>
<code>Resolving Dependencies</code>
<code>--> Running transaction check</code>
<code>---> Package mysql-community-client.x86_64 0:5.7.18-1.el6 will be installed</code>
<code>---> Package mysql-community-common.x86_64 0:5.7.18-1.el6 will be installed</code>
<code>---> Package mysql-community-libs.x86_64 0:5.7.18-1.el6 will be installed</code>
<code>---> Package mysql-community-server.x86_64 0:5.7.18-1.el6 will be installed</code>
<code>--> Finished Dependency Resolution</code>
<code>Dependencies Resolved</code>
<code>==================================================================================================================================</code>
<code>Package Arch Version Repository </code><code>Size</code>
<code>Installing:</code>
<code>mysql-community-client x86_64 5.7.18-1.el6 /mysql-community-client-5.7.18-1.el6.x86_64 100 M</code>
<code>mysql-community-common x86_64 5.7.18-1.el6 /mysql-community-common-5.7.18-1.el6.x86_64 2.5 M</code>
<code>mysql-community-libs x86_64 5.7.18-1.el6 /mysql-community-libs-5.7.18-1.el6.x86_64 8.9 M</code>
<code>mysql-community-server x86_64 5.7.18-1.el6 /mysql-community-server-5.7.18-1.el6.x86_64 769 M</code>
<code>Transaction</code> <code>Summary</code>
<code>Install 4 Package(s)</code>
<code>Total </code><code>size</code><code>: 880 M</code>
<code>Installed </code><code>size</code><code>: 880 M</code>
<code>Is</code> <code>this ok [y/N]: y</code>
<code>Downloading Packages:</code>
<code>Running rpm_check_debug</code>
<code>Running </code><code>Transaction</code> <code>Test</code>
<code>Transaction</code> <code>Test Succeeded</code>
<code>Running </code><code>Transaction</code>
<code>Installing : mysql-community-common-5.7.18-1.el6.x86_64 1/4</code>
<code>Installing : mysql-community-libs-5.7.18-1.el6.x86_64 2/4</code>
<code>Installing : mysql-community-client-5.7.18-1.el6.x86_64 3/4</code>
<code>Installing : mysql-community-server-5.7.18-1.el6.x86_64 4/4</code>
<code>Verifying : mysql-community-server-5.7.18-1.el6.x86_64 1/4</code>
<code>Verifying : mysql-community-libs-5.7.18-1.el6.x86_64 2/4</code>
<code>Verifying : mysql-community-common-5.7.18-1.el6.x86_64 3/4</code>
<code>Verifying : mysql-community-client-5.7.18-1.el6.x86_64 4/4</code>
<code>Installed:</code>
<code>mysql-community-client.x86_64 0:5.7.18-1.el6 mysql-community-common.x86_64 0:5.7.18-1.el6</code>
<code>mysql-community-libs.x86_64 0:5.7.18-1.el6 mysql-community-server.x86_64 0:5.7.18-1.el6</code>
<code>Complete!</code>
12. 最後檢查,已經安裝成功
<code>mysql-community-client-5.7.18-1.el6.x86_64</code>
<code>mysql-community-libs-5.7.18-1.el6.x86_64</code>
<code>mysql-community-common-5.7.18-1.el6.x86_64</code>
<code>mysql-community-server-5.7.18-1.el6.x86_64</code>
13. 安裝完成,但是啟動的時候遇到了問題:
<code># service mysqld restart</code>
<code>Stopping mysqld: [ OK ]</code>
<code>Initializing MySQL </code><code>database</code><code>: 2017-07-11T15:23:50.462866Z 0 [Warning] </code><code>TIMESTAMP</code> <code>with</code> <code>implicit </code><code>DEFAULT</code> <code>value </code><code>is</code> <code>deprecated. Please use </code><code>--explicit_defaults_for_timestamp server option (see documentation for more details).</code>
<code>2017-07-11T15:23:50.465315Z 0 [ERROR] </code><code>--initialize specified but the data directory has files in it. Aborting.</code>
<code>2017-07-11T15:23:50.465365Z 0 [ERROR] Aborting</code>
<code>[FAILED]</code>
14. 百度的解決方法(是由于之前老版本的資料庫已經占用這個檔案夾,需要清空,或者在/etc/my.cnf中重新指定--datadir)
保證 --datadir目錄為空。 /usr/local/var/mysql 這個目錄
15. 啟動成功
<code># cd /var/lib/mysql</code>
<code># ls</code>
<code>auto.cnf ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1</code>
<code># rm *</code>
<code>rm: remove regular file `auto.cnf</code><code>'? y</code>
<code>rm: remove regular file `ib_buffer_pool'</code><code>? y</code>
<code>rm: remove regular file `ibdata1</code><code>'? y</code>
<code>rm: remove regular file `ib_logfile0'</code><code>? y</code>
<code>rm: remove regular file `ib_logfile1'? y</code>
# service mysqld restart
<code>Initializing MySQL </code><code>database</code><code>: [ OK ]</code>
<code>Installing validate </code><code>password</code> <code>plugin: [ OK ]</code>
<code>Starting mysqld: [ OK ]</code>
# ps -ef|grep mysql
<code>root 4533 1 0 23:25 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe </code><code>--datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql</code>
<code>mysql 4727 4533 4 23:25 pts/0 00:00:00 /usr/sbin/mysqld </code><code>--basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock</code>
<code>root 4762 3752 0 23:25 pts/0 00:00:00 grep mysql</code>
16. 然而啟動的過程中,又遇到一些問題,密碼不知道了,重置密碼
<code># mysql -u root</code>
<code>ERROR 1045 (28000): Access denied </code><code>for</code> <code>user</code> <code>'root'</code><code>@</code><code>'localhost'</code> <code>(using </code><code>password</code><code>: </code><code>NO</code><code>)</code>
<code>[root@test mysql]# mysql -u root -p</code>
<code>Enter </code><code>password</code><code>:</code>
<code>ERROR 1045 (28000): Access denied </code><code>for</code> <code>user</code> <code>'root'</code><code>@</code><code>'localhost'</code> <code>(using </code><code>password</code><code>: YES)</code>
編輯mysql配置檔案/etc/my.cnf,在[mysqld]這個條目下加入 skip-grant-tables 儲存退出後重新開機mysql
# vi /etc/my.cnf
<code>[root@test mysql]# service mysqld restart</code>
# mysql
<code>Welcome </code><code>to</code> <code>the MySQL monitor. Commands </code><code>end</code> <code>with</code> <code>; </code><code>or</code> <code>\g.</code>
<code>Your MySQL </code><code>connection</code> <code>id </code><code>is</code> <code>4</code>
<code>Server version: 5.7.18 MySQL Community Server (GPL)</code>
<code>Copyright (c) 2000, 2017, Oracle </code><code>and</code><code>/</code><code>or</code> <code>its affiliates. </code><code>All</code> <code>rights reserved.</code>
<code>Oracle </code><code>is</code> <code>a registered trademark </code><code>of</code> <code>Oracle Corporation </code><code>and</code><code>/</code><code>or</code> <code>its</code>
<code>affiliates. Other names may be trademarks </code><code>of</code> <code>their respective</code>
<code>owners.</code>
<code>Type </code><code>'help;'</code> <code>or</code> <code>'\h'</code> <code>for</code> <code>help. Type </code><code>'\c'</code> <code>to</code> <code>clear the </code><code>current</code> <code>input statement.</code>
<code>mysql> show databases;</code>
<code>+</code><code>--------------------+</code>
<code>| </code><code>Database</code> <code>|</code>
<code>| information_schema |</code>
<code>| mysql |</code>
<code>| performance_schema |</code>
<code>| sys |</code>
<code>4 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>
設定密碼,然後删除/etc/my.cnf中的 skip-grant-tables
再次重新開機mysql
<code>mysql> use mysql;</code>
<code>Database</code> <code>changed</code>
--.給root使用者設定新密碼:
5.7版本之前:
<code>mysql> </code><code>update</code> <code>user</code> <code>set</code> <code>password</code><code>=</code><code>password</code><code>(</code><code>"新密碼"</code><code>) </code><code>where</code> <code>user</code><code>=</code><code>"root"</code><code>;</code>
<code>Query OK, 1 </code><code>rows</code> <code>affected (0.01 sec)</code>
<code>Rows</code> <code>matched: 1 Changed: 1 Warnings: 0</code>
在5.7版本之後,mysql資料庫下已經沒有password這個字段了,password字段改成了authentication_string。
<code>update</code> <code>mysql.</code><code>user</code> <code>set</code> <code>authentication_string=</code><code>PASSWORD</code><code>(</code><code>'oracle'</code><code>) </code><code>where</code> <code>User</code><code>=</code><code>'root'</code><code>;</code>
<code>mysql> flush </code><code>privileges</code><code>;</code>
<code>Query OK, 0 </code><code>rows</code> <code>affected (0.00 sec)</code>
---退出mysql,重新開機然後重新登入
# mysql -uroot -poracle
<code>mysql: [Warning] Using a </code><code>password</code> <code>on</code> <code>the command line interface can be insecure.</code>
<code>Your MySQL </code><code>connection</code> <code>id </code><code>is</code> <code>5</code>
<code>Server version: 5.7.18</code>
<code>mysql></code>
<code></code>
本文轉自 hsbxxl 51CTO部落格,原文連結:http://blog.51cto.com/hsbxxl/1947164,如需轉載請自行聯系原作者