在CentOS7系统上编译安装MySQL 5.7.13步骤详解
<p>MySQL 5.7主要特性</p>
<p>
1、更好的性能</p>
<p>
对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的。</p>
<p>
2、更好的InnoDB存储引擎</p>
<p>
3、更为健壮的复制功能</p>
<p>
复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用。此外,GTID在线平滑升级也变得可能。</p>
<p>
4、更好的优化器</p>
<p>
优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题。</p>
<p>
5、原生JSON类型的支持</p>
<p>
6、更好的地理信息服务支持</p>
<p>
InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性<br>
7、新增sys库</p>
<p>
以后这会是DBA访问最频繁的库MySQL 5.7已经作为数据库可选项添加到《OneinStack》</p>
<p>
<strong>安装准备</strong></p>
<p>
<strong>安装依赖包</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_545918">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
下载相应源码包</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_1648">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>新建MySQL用户和用户组</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_657126">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>预编译</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_806231">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># tar -zxvf boost_1_59_0.tar.gz</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># md5sum mysql-5.7.13.tar.gz </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">8fab75dbcafcd1374d07796bff88ae00 mysql-5.7.13.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># tar -zxvf mysql-5.7.13.tar.gz</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"></code><code class="bash comments"># mkdir -p /data/mysql</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain"></code><code class="bash comments"># cd mysql-5.7.13</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain"></code><code class="bash comments"># cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">-DMYSQL_DATADIR=</code><code class="bash plain">/data/mysql</code> <code class="bash plain">\</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">-DWITH_BOOST=..</code><code class="bash plain">/boost_1_59_0</code> <code class="bash plain">\</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">-DSYSCONFDIR=</code><code class="bash plain">/etc</code> <code class="bash plain">\</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">-DWITH_INNOBASE_STORAGE_ENGINE=1 \</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">-DWITH_PARTITION_STORAGE_ENGINE=1 \</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">-DWITH_FEDERATED_STORAGE_ENGINE=1 \</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">-DWITH_MYISAM_STORAGE_ENGINE=1 \</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">-DENABLED_LOCAL_INFILE=1 \</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain">-DENABLE_DTRACE=0 \</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash plain">-DDEFAULT_CHARSET=utf8mb4 \</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash plain">-DDEFAULT_COLLATION=utf8mb4_general_ci \</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash plain">-DWITH_EMBEDDED_SERVER=1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>编译安装</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_923029">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># make -j `grep processor /proc/cpuinfo | wc -l`</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments">#编译很消耗系统资源,小内存可能编译通不过make install</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>设置启动脚本,开机自启动</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_173662">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ls -lrt /usr/local/mysql</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># chmod +x /etc/init.d/mysqld</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># systemctl enable mysqld</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">mysqld.service is not a native service, redirecting to </code><code class="bash plain">/sbin/chkconfig</code><code class="bash plain">.</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">Executing </code><code class="bash plain">/sbin/chkconfig</code> <code class="bash plain">mysqld on</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>配置文件</strong></p>
<p>
/etc/my.cnf,仅供参考</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_98937">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
<div class="line number37 index36 alt2">
37</div>
<div class="line number38 index37 alt1">
38</div>
<div class="line number39 index38 alt2">
39</div>
<div class="line number40 index39 alt1">
40</div>
<div class="line number41 index40 alt2">
41</div>
<div class="line number42 index41 alt1">
42</div>
<div class="line number43 index42 alt2">
43</div>
<div class="line number44 index43 alt1">
44</div>
<div class="line number45 index44 alt2">
45</div>
<div class="line number46 index45 alt1">
46</div>
<div class="line number47 index46 alt2">
47</div>
<div class="line number48 index47 alt1">
48</div>
<div class="line number49 index48 alt2">
49</div>
<div class="line number50 index49 alt1">
50</div>
<div class="line number51 index50 alt2">
51</div>
<div class="line number52 index51 alt1">
52</div>
<div class="line number53 index52 alt2">
53</div>
<div class="line number54 index53 alt1">
54</div>
<div class="line number55 index54 alt2">
55</div>
<div class="line number56 index55 alt1">
56</div>
<div class="line number57 index56 alt2">
57</div>
<div class="line number58 index57 alt1">
58</div>
<div class="line number59 index58 alt2">
59</div>
<div class="line number60 index59 alt1">
60</div>
<div class="line number61 index60 alt2">
61</div>
<div class="line number62 index61 alt1">
62</div>
<div class="line number63 index62 alt2">
63</div>
<div class="line number64 index63 alt1">
64</div>
<div class="line number65 index64 alt2">
65</div>
<div class="line number66 index65 alt1">
66</div>
<div class="line number67 index66 alt2">
67</div>
<div class="line number68 index67 alt1">
68</div>
<div class="line number69 index68 alt2">
69</div>
<div class="line number70 index69 alt1">
70</div>
<div class="line number71 index70 alt2">
71</div>
<div class="line number72 index71 alt1">
72</div>
<div class="line number73 index72 alt2">
73</div>
<div class="line number74 index73 alt1">
74</div>
<div class="line number75 index74 alt2">
75</div>
<div class="line number76 index75 alt1">
76</div>
<div class="line number77 index76 alt2">
77</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cat > /etc/my.cnf << EOF</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">port = 3306</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">socket = </code><code class="bash plain">/dev/shm/mysql</code><code class="bash plain">.sock</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"></code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">port = 3306</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">socket = </code><code class="bash plain">/dev/shm/mysql</code><code class="bash plain">.sock</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">basedir = </code><code class="bash plain">/usr/local/mysql</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">datadir = </code><code class="bash plain">/data/mysql</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">pid-</code><code class="bash functions">file</code> <code class="bash plain">= </code><code class="bash plain">/data/mysql/mysql</code><code class="bash plain">.pid</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">user = mysql</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">bind-address = 0.0.0.0</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">server-</code><code class="bash functions">id</code> <code class="bash plain">= 1</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">init-connect = </code><code class="bash string">'SET NAMES utf8mb4'</code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">character-</code><code class="bash functions">set</code><code class="bash plain">-server = utf8mb4</code>
</div>
<div class="line number16 index15 alt1">
<code class="bash comments">#skip-name-resolve</code>
</div>
<div class="line number17 index16 alt2">
<code class="bash comments">#skip-networking</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash plain">back_log = 300</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash plain">max_connections = 1000</code>
</div>
<div class="line number20 index19 alt1">
<code class="bash plain">max_connect_errors = 6000</code>
</div>
<div class="line number21 index20 alt2">
<code class="bash plain">open_files_limit = 65535</code>
</div>
<div class="line number22 index21 alt1">
<code class="bash plain">table_open_cache = 128</code>
</div>
<div class="line number23 index22 alt2">
<code class="bash plain">max_allowed_packet = 4M</code>
</div>
<div class="line number24 index23 alt1">
<code class="bash plain">binlog_cache_size = 1M</code>
</div>
<div class="line number25 index24 alt2">
<code class="bash plain">max_heap_table_size = 8M</code>
</div>
<div class="line number26 index25 alt1">
<code class="bash plain">tmp_table_size = 16M</code>
</div>
<div class="line number27 index26 alt2">
<code class="bash plain">read_buffer_size = 2M</code>
</div>
<div class="line number28 index27 alt1">
<code class="bash plain">read_rnd_buffer_size = 8M</code>
</div>
<div class="line number29 index28 alt2">
<code class="bash plain">sort_buffer_size = 8M</code>
</div>
<div class="line number30 index29 alt1">
<code class="bash plain">join_buffer_size = 8M</code>
</div>
<div class="line number31 index30 alt2">
<code class="bash plain">key_buffer_size = 4M</code>
</div>
<div class="line number32 index31 alt1">
<code class="bash plain">thread_cache_size = 8</code>
</div>
<div class="line number33 index32 alt2">
<code class="bash plain">query_cache_type = 1</code>
</div>
<div class="line number34 index33 alt1">
<code class="bash plain">query_cache_size = 8M</code>
</div>
<div class="line number35 index34 alt2">
<code class="bash plain">query_cache_limit = 2M</code>
</div>
<div class="line number36 index35 alt1">
<code class="bash plain">ft_min_word_len = 4</code>
</div>
<div class="line number37 index36 alt2">
<code class="bash plain">log_bin = mysql-bin</code>
</div>
<div class="line number38 index37 alt1">
<code class="bash plain">binlog_format = mixed</code>
</div>
<div class="line number39 index38 alt2">
<code class="bash plain">expire_logs_days = 30</code>
</div>
<div class="line number40 index39 alt1">
<code class="bash plain">log_error = </code><code class="bash plain">/data/mysql/mysql-error</code><code class="bash plain">.log</code>
</div>
<div class="line number41 index40 alt2">
<code class="bash plain">slow_query_log = 1</code>
</div>
<div class="line number42 index41 alt1">
<code class="bash plain">long_query_time = 1</code>
</div>
<div class="line number43 index42 alt2">
<code class="bash plain">slow_query_log_file = </code><code class="bash plain">/data/mysql/mysql-slow</code><code class="bash plain">.log</code>
</div>
<div class="line number44 index43 alt1">
<code class="bash plain">performance_schema = 0</code>
</div>
<div class="line number45 index44 alt2">
<code class="bash plain">explicit_defaults_for_timestamp</code>
</div>
<div class="line number46 index45 alt1">
<code class="bash comments">#lower_case_table_names = 1</code>
</div>
<div class="line number47 index46 alt2">
<code class="bash plain">skip-external-locking</code>
</div>
<div class="line number48 index47 alt1">
<code class="bash plain">default_storage_engine = InnoDB</code>
</div>
<div class="line number49 index48 alt2">
<code class="bash comments">#default-storage-engine = MyISAM</code>
</div>
<div class="line number50 index49 alt1">
<code class="bash plain">innodb_file_per_table = 1</code>
</div>
<div class="line number51 index50 alt2">
<code class="bash plain">innodb_open_files = 500</code>
</div>
<div class="line number52 index51 alt1">
<code class="bash plain">innodb_buffer_pool_size = 64M</code>
</div>
<div class="line number53 index52 alt2">
<code class="bash plain">innodb_write_io_threads = 4</code>
</div>
<div class="line number54 index53 alt1">
<code class="bash plain">innodb_read_io_threads = 4</code>
</div>
<div class="line number55 index54 alt2">
<code class="bash plain">innodb_thread_concurrency = 0</code>
</div>
<div class="line number56 index55 alt1">
<code class="bash plain">innodb_purge_threads = 1</code>
</div>
<div class="line number57 index56 alt2">
<code class="bash plain">innodb_flush_log_at_trx_commit = 2</code>
</div>
<div class="line number58 index57 alt1">
<code class="bash plain">innodb_log_buffer_size = 2M</code>
</div>
<div class="line number59 index58 alt2">
<code class="bash plain">innodb_log_file_size = 32M</code>
</div>
<div class="line number60 index59 alt1">
<code class="bash plain">innodb_log_files_in_group = 3</code>
</div>
<div class="line number61 index60 alt2">
<code class="bash plain">innodb_max_dirty_pages_pct = 90</code>
</div>
<div class="line number62 index61 alt1">
<code class="bash plain">innodb_lock_wait_timeout = 120</code>
</div>
<div class="line number63 index62 alt2">
<code class="bash plain">bulk_insert_buffer_size = 8M</code>
</div>
<div class="line number64 index63 alt1">
<code class="bash plain">myisam_sort_buffer_size = 8M</code>
</div>
<div class="line number65 index64 alt2">
<code class="bash plain">myisam_max_sort_file_size = 10G</code>
</div>
<div class="line number66 index65 alt1">
<code class="bash plain">myisam_repair_threads = 1</code>
</div>
<div class="line number67 index66 alt2">
<code class="bash plain">interactive_timeout = 28800</code>
</div>
<div class="line number68 index67 alt1">
<code class="bash plain">wait_timeout = 28800</code>
</div>
<div class="line number69 index68 alt2">
<code class="bash plain"></code>
</div>
<div class="line number70 index69 alt1">
<code class="bash plain">quick</code>
</div>
<div class="line number71 index70 alt2">
<code class="bash plain">max_allowed_packet = 16M</code>
</div>
<div class="line number72 index71 alt1">
<code class="bash plain"></code>
</div>
<div class="line number73 index72 alt2">
<code class="bash plain">key_buffer_size = 8M</code>
</div>
<div class="line number74 index73 alt1">
<code class="bash plain">sort_buffer_size = 8M</code>
</div>
<div class="line number75 index74 alt2">
<code class="bash plain">read_buffer = 4M</code>
</div>
<div class="line number76 index75 alt1">
<code class="bash plain">write_buffer = 4M</code>
</div>
<div class="line number77 index76 alt2">
<code class="bash plain">EOF</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>添加mysql的环境变量</strong></p>
<p>
</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code39229">
<br>
# echo -e '\n\nexport PATH=/usr/local/mysql/bin:$PATH\n' >> /etc/profile && source /etc/profile</div>
<p>
</p>
<p>
<strong>初始化数据库</strong></p>
<p>
</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code30944">
<br>
# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql</div>
<br><p>
</p>
<p>
注:</p>
<ul>
<li>
MySQL之前版本mysql_install_db是在mysql_basedir/script下</li>
<li>
MySQL 5.7直接放在了mysql_install_db/bin目录下。</li>
<li>
"–initialize"已废弃,生成一个随机密码(~/.mysql_secret)</li>
<li>
"–initialize-insecure"不会生成密码</li>
<li>
"–datadir"目录下不能有数据文件</li>
</ul>
<p>
<strong>启动数据库</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_342970">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># systemctl start mysqld</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># systemctl status mysqld</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash spaces"> </code><code class="bash plain">mysqld.service - LSB: start and stop MySQL</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash plain">Loaded: loaded (</code><code class="bash plain">/etc/rc</code><code class="bash plain">.d</code><code class="bash plain">/init</code><code class="bash plain">.d</code><code class="bash plain">/mysqld</code><code class="bash plain">)</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">Active: active (running) since 一 2016-07-18 11:15:35 CST; 8s ago</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code><code class="bash plain">Docs: </code><code class="bash functions">man</code><code class="bash plain">:systemd-sysv-generator(8)</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash spaces"> </code><code class="bash plain">Process: 23927 ExecStart=</code><code class="bash plain">/etc/rc</code><code class="bash plain">.d</code><code class="bash plain">/init</code><code class="bash plain">.d</code><code class="bash plain">/mysqld</code> <code class="bash plain">start (code=exited, status=0</code><code class="bash plain">/SUCCESS</code><code class="bash plain">)</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code><code class="bash plain">CGroup: </code><code class="bash plain">/system</code><code class="bash plain">.slice</code><code class="bash plain">/mysqld</code><code class="bash plain">.service</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash spaces"> </code><code class="bash plain">├─23940 </code><code class="bash plain">/bin/sh</code> <code class="bash plain">/usr/local/mysql/bin/mysqld_safe</code> <code class="bash plain">--datadir=</code><code class="bash plain">/data/mysql</code> <code class="bash plain">--pid-</code><code class="bash functions">file</code><code class="bash plain">=</code><code class="bash plain">/data/mysql/mysql</code><code class="bash plain">.pid</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code><code class="bash plain">└─24776 </code><code class="bash plain">/usr/local/mysql/bin/mysqld</code> <code class="bash plain">--basedir=</code><code class="bash plain">/usr/local/mysql</code> <code class="bash plain">--datadir=</code><code class="bash plain">/data/mysql</code> <code class="bash plain">--plugin-</code><code class="bash functions">dir</code><code class="bash plain">=</code><code class="bash plain">/usr/local/mysql/lib/plugin</code> <code class="bash plain">--user=mysql --log-error=</code><code class="bash plain">/data/mysql/mysql-err</code><code class="bash plain">...</code>
</div>
<div class="line number11 index10 alt2">
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">7月 18 11:15:32 snails systemd: Starting LSB: start and stop MySQL...</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">7月 18 11:15:35 snails mysqld: Starting MySQL..[ OK ]</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">7月 18 11:15:35 snails systemd: Started LSB: start and stop MySQL.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>查看MySQL服务进程和端口</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_734857">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ps -ef | grep mysql</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">root 23940 1 0 11:15 ? 00:00:00 </code><code class="bash plain">/bin/sh</code> <code class="bash plain">/usr/local/mysql/bin/mysqld_safe</code> <code class="bash plain">--datadir=</code><code class="bash plain">/data/mysql</code> <code class="bash plain">--pid-</code><code class="bash functions">file</code><code class="bash plain">=</code><code class="bash plain">/data/mysql/mysql</code><code class="bash plain">.pid</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">mysql 24776 23940 0 11:15 ? 00:00:00 </code><code class="bash plain">/usr/local/mysql/bin/mysqld</code> <code class="bash plain">--basedir=</code><code class="bash plain">/usr/local/mysql</code> <code class="bash plain">--datadir=</code><code class="bash plain">/data/mysql</code> <code class="bash plain">--plugin-</code><code class="bash functions">dir</code><code class="bash plain">=</code><code class="bash plain">/usr/local/mysql/lib/plugin</code> <code class="bash plain">--user=mysql --log-error=</code><code class="bash plain">/data/mysql/mysql-error</code><code class="bash plain">.log --</code><code class="bash functions">open</code><code class="bash plain">-files-limit=65535 --pid-</code><code class="bash functions">file</code><code class="bash plain">=</code><code class="bash plain">/data/mysql/mysql</code><code class="bash plain">.pid --socket=</code><code class="bash plain">/dev/shm/mysql</code><code class="bash plain">.sock --port=3306</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># netstat -tunpl | grep 3306</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 24776</code><code class="bash plain">/mysqld</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>设置数据库root用户密码</strong></p>
<p>
MySQL和Oracle数据库一样,数据库也默认自带了一个 root 用户(这个和当前Linux主机上的root用户是完全不搭边的),我们在设置好MySQL数据库的安全配置后初始化root用户的密码。配制过程中,一路输入 y 就行了。这里只说明下MySQL5.7.13版本中,用户密码策略分成低级 LOW 、中等 MEDIUM 和超强 STRONG 三种,推荐使用中等 MEDIUM 级别!</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_462688">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># mysql_secure_installation</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>常用操作</strong></p>
<p>
<strong>将MySQL数据库的动态链接库共享至系统链接库</strong></p>
<p>
一般MySQL数据库还会被类似于PHP等服务调用,所以我们需要将MySQL编译后的lib库文件添加至当前Linux主机链接库 /etc/ld.so.conf.d/下,这样MySQL服务就可以被其它服务调用了。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_835504">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ldconfig |grep mysql</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain"></code><code class="bash comments"># echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ldconfig</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain"></code><code class="bash comments"># ldconfig -v |grep mysql</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">ldconfig: 无法对 </code><code class="bash plain">/libx32</code> <code class="bash plain">进行 stat 操作: 没有那个文件或目录</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">ldconfig: 多次给出路径“</code><code class="bash plain">/usr/lib</code><code class="bash plain">”</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">ldconfig: 多次给出路径“</code><code class="bash plain">/usr/lib64</code><code class="bash plain">”</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">ldconfig: 无法对 </code><code class="bash plain">/usr/libx32</code> <code class="bash plain">进行 stat 操作: 没有那个文件或目录</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">/usr/lib64/mysql</code><code class="bash plain">:</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code><code class="bash plain">libmysqlclient.so.18 -> libmysqlclient.so.18.0.0</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">/usr/local/mysql/lib</code><code class="bash plain">:</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code><code class="bash plain">libmysqlclient.so.20 -> libmysqlclient.so.20.3.0</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>创建其它MySQL数据库用户</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_673229">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain"># mysql -uroot -p</code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">Enter </code><code class="sql keyword">password</code><code class="sql plain">: </code>
</div>
<div class="line number3 index2 alt2">
<code class="sql plain">Welcome </code><code class="sql keyword">to</code> <code class="sql plain">the MySQL monitor. Commands </code><code class="sql keyword">end</code> <code class="sql keyword">with</code> <code class="sql plain">; </code><code class="sql color1">or</code> <code class="sql plain">\g.</code>
</div>
<div class="line number4 index3 alt1">
<code class="sql plain">Your MySQL </code><code class="sql keyword">connection</code> <code class="sql plain">id </code><code class="sql keyword">is</code> <code class="sql plain">4</code>
</div>
<div class="line number5 index4 alt2">
<code class="sql plain">Server version: 5.7.13-log Source distribution</code>
</div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="sql plain">Copyright (c) 2000, 2016, Oracle </code><code class="sql color1">and</code><code class="sql plain">/</code><code class="sql color1">or</code> <code class="sql plain">its affiliates. </code><code class="sql color1">All</code> <code class="sql plain">rights reserved.</code>
</div>
<div class="line number8 index7 alt1">
</div>
<div class="line number9 index8 alt2">
<code class="sql plain">Oracle </code><code class="sql keyword">is</code> <code class="sql plain">a registered trademark </code><code class="sql keyword">of</code> <code class="sql plain">Oracle Corporation </code><code class="sql color1">and</code><code class="sql plain">/</code><code class="sql color1">or</code> <code class="sql plain">its</code>
</div>
<div class="line number10 index9 alt1">
<code class="sql plain">affiliates. Other names may be trademarks </code><code class="sql keyword">of</code> <code class="sql plain">their respective</code>
</div>
<div class="line number11 index10 alt2">
<code class="sql plain">owners.</code>
</div>
<div class="line number12 index11 alt1">
</div>
<div class="line number13 index12 alt2">
<code class="sql plain">Type </code><code class="sql string">'help;'</code> <code class="sql color1">or</code> <code class="sql string">'\h'</code> <code class="sql keyword">for</code> <code class="sql plain">help. Type </code><code class="sql string">'\c'</code> <code class="sql keyword">to</code> <code class="sql plain">clear the </code><code class="sql keyword">current</code> <code class="sql plain">input statement.</code>
</div>
<div class="line number14 index13 alt1">
<code class="sql plain">mysql></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_946828">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">mysql></code><code class="sql keyword">CREATE</code> <code class="sql keyword">DATABASE</code> <code class="sql plain">`tonnydb` </code><code class="sql keyword">DEFAULT</code> <code class="sql keyword">CHARACTER</code> <code class="sql keyword">SET</code> <code class="sql plain">utf8 </code><code class="sql keyword">COLLATE</code> <code class="sql plain">utf8_general_ci;</code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">Query OK, 1 row affected (0.01 sec)</code>
</div>
<div class="line number3 index2 alt2">
<code class="sql plain">mysql> show databases;</code>
</div>
<div class="line number4 index3 alt1">
<code class="sql plain">+</code><code class="sql comments">--------------------+</code>
</div>
<div class="line number5 index4 alt2">
<code class="sql plain">| </code><code class="sql keyword">Database</code> <code class="sql plain">|</code>
</div>
<div class="line number6 index5 alt1">
<code class="sql plain">+</code><code class="sql comments">--------------------+</code>
</div>
<div class="line number7 index6 alt2">
<code class="sql plain">| information_schema |</code>
</div>
<div class="line number8 index7 alt1">
<code class="sql plain">| mysql |</code>
</div>
<div class="line number9 index8 alt2">
<code class="sql plain">| performance_schema |</code>
</div>
<div class="line number10 index9 alt1">
<code class="sql plain">| sys |</code>
</div>
<div class="line number11 index10 alt2">
<code class="sql plain">| tonnydb |</code>
</div>
<div class="line number12 index11 alt1">
<code class="sql plain">+</code><code class="sql comments">--------------------+</code>
</div>
<div class="line number13 index12 alt2">
<code class="sql plain">5 </code><code class="sql keyword">rows</code> <code class="sql color1">in</code> <code class="sql keyword">set</code> <code class="sql plain">(0.00 sec)</code>
</div>
<div class="line number14 index13 alt1">
<code class="sql plain">mysql> </code><code class="sql keyword">grant</code> <code class="sql color1">all</code> <code class="sql keyword">privileges</code> <code class="sql keyword">on</code> <code class="sql plain">tonnydb.* </code><code class="sql keyword">to</code> <code class="sql string">'tonny@%'</code> <code class="sql plain">identified </code><code class="sql keyword">by</code> <code class="sql string">'Hi.Tonny@888'</code><code class="sql plain">;</code>
</div>
<div class="line number15 index14 alt2">
<code class="sql plain">Query OK, 0 </code><code class="sql keyword">rows</code> <code class="sql plain">affected, 1 warning (0.00 sec)</code>
</div>
<div class="line number16 index15 alt1">
</div>
<div class="line number17 index16 alt2">
<code class="sql plain">mysql> flush </code><code class="sql keyword">privileges</code><code class="sql plain">;</code>
</div>
<div class="line number18 index17 alt1">
<code class="sql plain">Query OK, 0 </code><code class="sql keyword">rows</code> <code class="sql plain">affected (0.01 sec)</code>
</div>
<div class="line number19 index18 alt2">
</div>
<div class="line number20 index19 alt1">
<code class="sql plain">mysql> exit</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:http://www.jianshu.com/p/95a103add722</p>
頁:
[1]