MySQL/MariaDB/Percona数据库升级脚本
<p><strong>mysql/mariadb/percona数据库升级脚本</strong></p>
<p>
mysql/mariadb/percona数据库升级脚本截取《oneinstack》中upgrade_db.sh,一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们。为防止大版本之间兼容问题,脚本默认仅支持同一大版本之间的升级,如:mysql-5.6.25升级到mysql-5.6.26、mysql-5.5.44升级到mysql-5.5.45、mariadb-10.0.20升级到mariadb-10.0.21;不能跨分支版本且不能跨大版本,如从mysql-5.5.44升级到perconal-5.5.44-37.3、mysql-5.5.44升级到mysql-5.6.25。</p>
<p>
<strong>2015-07-16之前版本如何支持数据库版本升级?</strong></p>
<p>
《oneinstack》:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_463383">
<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>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/root/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">cp</code> <code class="bash plain">oneinstack</code><code class="bash plain">/options</code><code class="bash plain">.conf ~ </code><code class="bash comments">#备份options.conf</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">rm</code> <code class="bash plain">-rf oneinstack </code><code class="bash comments">#删除旧版</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">wget http:</code><code class="bash plain">//mirrors</code><code class="bash plain">.linuxeye.com</code><code class="bash plain">/oneinstack-full</code><code class="bash plain">.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code><code class="bash comments">#下载最新版</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash functions">tar</code> <code class="bash plain">xzf oneinstack-full.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">/bin/mv</code> <code class="bash plain">~</code><code class="bash plain">/options</code><code class="bash plain">.conf .</code><code class="bash plain">/oneinstack</code> <code class="bash comments">#还原options.conf, 必须使用旧版options.conf文件</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash functions">cd</code> <code class="bash plain">oneinstack</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">.</code><code class="bash plain">/upgrade</code> <code class="bash plain">db </code><code class="bash comments">#升级数据库版本,如下图:</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img title="MySQL/MariaDB/Percona数据库升级脚本" alt="MySQL/MariaDB/Percona数据库升级脚本" src="https://zhuji.jb51.net/uploads/img/202305/8cfd40e148119cb5bd4d0f6c87f93d81.jpg"></p>
<p>
《lnmp一键安装包》:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_348390">
<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>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cp</code> <code class="bash plain">lnmp</code><code class="bash plain">/options</code><code class="bash plain">.conf ~ </code><code class="bash comments">#备份options.conf</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">rm</code> <code class="bash plain">-rf lnmp </code><code class="bash comments">#删除旧版</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">wget http:</code><code class="bash plain">//mirrors</code><code class="bash plain">.linuxeye.com</code><code class="bash plain">/lnmp-full</code><code class="bash plain">.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code><code class="bash comments">#下载最新版</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">tar</code> <code class="bash plain">xzf lnmp-full.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">/bin/mv</code> <code class="bash plain">~</code><code class="bash plain">/options</code><code class="bash plain">.conf .</code><code class="bash plain">/lnmp</code> <code class="bash comments">#还原options.conf, 必须使用旧版options.conf文件</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash functions">cd</code> <code class="bash plain">lnmp</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">.</code><code class="bash plain">/upgrade</code> <code class="bash plain">db </code><code class="bash comments">#升级数据库版本</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
ps:mysql/mariadb/percona数据库升级脚本内容如下(cat upgrade_db.sh):</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_549305">
<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>
<div class="line number78 index77 alt1">
78</div>
<div class="line number79 index78 alt2">
79</div>
<div class="line number80 index79 alt1">
80</div>
<div class="line number81 index80 alt2">
81</div>
<div class="line number82 index81 alt1">
82</div>
<div class="line number83 index82 alt2">
83</div>
<div class="line number84 index83 alt1">
84</div>
<div class="line number85 index84 alt2">
85</div>
<div class="line number86 index85 alt1">
86</div>
<div class="line number87 index86 alt2">
87</div>
<div class="line number88 index87 alt1">
88</div>
<div class="line number89 index88 alt2">
89</div>
<div class="line number90 index89 alt1">
90</div>
<div class="line number91 index90 alt2">
91</div>
<div class="line number92 index91 alt1">
92</div>
<div class="line number93 index92 alt2">
93</div>
<div class="line number94 index93 alt1">
94</div>
<div class="line number95 index94 alt2">
95</div>
<div class="line number96 index95 alt1">
96</div>
<div class="line number97 index96 alt2">
97</div>
<div class="line number98 index97 alt1">
98</div>
<div class="line number99 index98 alt2">
99</div>
<div class="line number100 index99 alt1">
100</div>
<div class="line number101 index100 alt2">
101</div>
<div class="line number102 index101 alt1">
102</div>
<div class="line number103 index102 alt2">
103</div>
<div class="line number104 index103 alt1">
104</div>
<div class="line number105 index104 alt2">
105</div>
<div class="line number106 index105 alt1">
106</div>
<div class="line number107 index106 alt2">
107</div>
<div class="line number108 index107 alt1">
108</div>
<div class="line number109 index108 alt2">
109</div>
<div class="line number110 index109 alt1">
110</div>
<div class="line number111 index110 alt2">
111</div>
<div class="line number112 index111 alt1">
112</div>
<div class="line number113 index112 alt2">
113</div>
<div class="line number114 index113 alt1">
114</div>
<div class="line number115 index114 alt2">
115</div>
<div class="line number116 index115 alt1">
116</div>
<div class="line number117 index116 alt2">
117</div>
<div class="line number118 index117 alt1">
118</div>
<div class="line number119 index118 alt2">
119</div>
<div class="line number120 index119 alt1">
120</div>
<div class="line number121 index120 alt2">
121</div>
<div class="line number122 index121 alt1">
122</div>
<div class="line number123 index122 alt2">
123</div>
<div class="line number124 index123 alt1">
124</div>
<div class="line number125 index124 alt2">
125</div>
<div class="line number126 index125 alt1">
126</div>
<div class="line number127 index126 alt2">
127</div>
<div class="line number128 index127 alt1">
128</div>
<div class="line number129 index128 alt2">
129</div>
<div class="line number130 index129 alt1">
130</div>
<div class="line number131 index130 alt2">
131</div>
<div class="line number132 index131 alt1">
132</div>
<div class="line number133 index132 alt2">
133</div>
<div class="line number134 index133 alt1">
134</div>
<div class="line number135 index134 alt2">
135</div>
<div class="line number136 index135 alt1">
136</div>
<div class="line number137 index136 alt2">
137</div>
<div class="line number138 index137 alt1">
138</div>
<div class="line number139 index138 alt2">
139</div>
<div class="line number140 index139 alt1">
140</div>
<div class="line number141 index140 alt2">
141</div>
<div class="line number142 index141 alt1">
142</div>
<div class="line number143 index142 alt2">
143</div>
<div class="line number144 index143 alt1">
144</div>
<div class="line number145 index144 alt2">
145</div>
<div class="line number146 index145 alt1">
146</div>
<div class="line number147 index146 alt2">
147</div>
<div class="line number148 index147 alt1">
148</div>
<div class="line number149 index148 alt2">
149</div>
<div class="line number150 index149 alt1">
150</div>
<div class="line number151 index150 alt2">
151</div>
<div class="line number152 index151 alt1">
152</div>
<div class="line number153 index152 alt2">
153</div>
<div class="line number154 index153 alt1">
154</div>
<div class="line number155 index154 alt2">
155</div>
<div class="line number156 index155 alt1">
156</div>
<div class="line number157 index156 alt2">
157</div>
<div class="line number158 index157 alt1">
158</div>
<div class="line number159 index158 alt2">
159</div>
<div class="line number160 index159 alt1">
160</div>
<div class="line number161 index160 alt2">
161</div>
<div class="line number162 index161 alt1">
162</div>
<div class="line number163 index162 alt2">
163</div>
<div class="line number164 index163 alt1">
164</div>
<div class="line number165 index164 alt2">
165</div>
<div class="line number166 index165 alt1">
166</div>
<div class="line number167 index166 alt2">
167</div>
<div class="line number168 index167 alt1">
168</div>
<div class="line number169 index168 alt2">
169</div>
<div class="line number170 index169 alt1">
170</div>
<div class="line number171 index170 alt2">
171</div>
<div class="line number172 index171 alt1">
172</div>
<div class="line number173 index172 alt2">
173</div>
<div class="line number174 index173 alt1">
174</div>
<div class="line number175 index174 alt2">
175</div>
<div class="line number176 index175 alt1">
176</div>
<div class="line number177 index176 alt2">
177</div>
<div class="line number178 index177 alt1">
178</div>
<div class="line number179 index178 alt2">
179</div>
<div class="line number180 index179 alt1">
180</div>
<div class="line number181 index180 alt2">
181</div>
<div class="line number182 index181 alt1">
182</div>
<div class="line number183 index182 alt2">
183</div>
<div class="line number184 index183 alt1">
184</div>
<div class="line number185 index184 alt2">
185</div>
<div class="line number186 index185 alt1">
186</div>
<div class="line number187 index186 alt2">
187</div>
<div class="line number188 index187 alt1">
188</div>
<div class="line number189 index188 alt2">
189</div>
<div class="line number190 index189 alt1">
190</div>
<div class="line number191 index190 alt2">
191</div>
<div class="line number192 index191 alt1">
192</div>
<div class="line number193 index192 alt2">
193</div>
<div class="line number194 index193 alt1">
194</div>
<div class="line number195 index194 alt2">
195</div>
<div class="line number196 index195 alt1">
196</div>
<div class="line number197 index196 alt2">
197</div>
<div class="line number198 index197 alt1">
198</div>
<div class="line number199 index198 alt2">
199</div>
<div class="line number200 index199 alt1">
200</div>
<div class="line number201 index200 alt2">
201</div>
<div class="line number202 index201 alt1">
202</div>
<div class="line number203 index202 alt2">
203</div>
<div class="line number204 index203 alt1">
204</div>
<div class="line number205 index204 alt2">
205</div>
<div class="line number206 index205 alt1">
206</div>
<div class="line number207 index206 alt2">
207</div>
<div class="line number208 index207 alt1">
208</div>
<div class="line number209 index208 alt2">
209</div>
<div class="line number210 index209 alt1">
210</div>
<div class="line number211 index210 alt2">
211</div>
<div class="line number212 index211 alt1">
212</div>
<div class="line number213 index212 alt2">
213</div>
<div class="line number214 index213 alt1">
214</div>
<div class="line number215 index214 alt2">
215</div>
<div class="line number216 index215 alt1">
216</div>
<div class="line number217 index216 alt2">
217</div>
<div class="line number218 index217 alt1">
218</div>
<div class="line number219 index218 alt2">
219</div>
<div class="line number220 index219 alt1">
220</div>
<div class="line number221 index220 alt2">
221</div>
<div class="line number222 index221 alt1">
222</div>
<div class="line number223 index222 alt2">
223</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash preprocessor bold">#!/bin/bash </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments"># author: yeho <lj2007331 at gmail.com> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash comments"># blog: https://blog.linuxeye.com </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash comments"># </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash comments"># notes: oneinstack for centos/radhat 5+ debian 6+ and ubuntu 12+ </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash comments"># </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash comments"># project home page: </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash comments"># http://oneinstack.com </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash comments"># https://github.com/lj2007331/oneinstack </code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">upgrade_db() </code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">{ </code>
</div>
<div class="line number13 index12 alt2">
<code class="bash functions">cd</code> <code class="bash plain">$oneinstack_dir</code><code class="bash plain">/src</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">[ ! -e </code><code class="bash string">"$db_install_dir/bin/mysql"</code> <code class="bash plain">] && </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}the mysql/mariadb/percona is not installed on your system! ${cend}"</code> <code class="bash plain">&& </code><code class="bash functions">exit</code> <code class="bash plain">1 </code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">old_db_version_tmp=`$db_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-</code><code class="bash functions">v</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash string">'{print $5}'</code> <code class="bash plain">| </code><code class="bash functions">awk</code> <code class="bash plain">-f, </code><code class="bash string">'{print $1}'</code><code class="bash plain">` </code>
</div>
<div class="line number16 index15 alt1">
<code class="bash plain">db_tmp=`</code><code class="bash functions">echo</code> <code class="bash plain">$old_db_version_tmp | </code><code class="bash functions">awk</code> <code class="bash plain">-f</code><code class="bash string">'-'</code> <code class="bash string">'{print $2}'</code><code class="bash plain">` </code>
</div>
<div class="line number17 index16 alt2">
<code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"$db_tmp"</code> <code class="bash plain">== </code><code class="bash string">'mariadb'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number18 index17 alt1">
<code class="bash spaces"> </code><code class="bash plain">[ </code><code class="bash string">"$ipaddr_state"</code><code class="bash plain">x == </code><code class="bash string">"cn"</code><code class="bash plain">x ] && down_addr=http:</code><code class="bash plain">//mirrors</code><code class="bash plain">.aliyun.com</code><code class="bash plain">/mariadb</code> <code class="bash plain">|| down_addr=https:</code><code class="bash plain">//downloads</code><code class="bash plain">.mariadb.org</code><code class="bash plain">/f</code>
</div>
<div class="line number19 index18 alt2">
<code class="bash spaces"> </code><code class="bash plain">libc_version=`getconf -a | </code><code class="bash functions">grep</code> <code class="bash plain">gnu_libc_version | </code><code class="bash functions">awk</code> <code class="bash string">'{print $nf}'</code><code class="bash plain">` </code>
</div>
<div class="line number20 index19 alt1">
<code class="bash spaces"> </code><code class="bash plain">libc_yn=`</code><code class="bash functions">echo</code> <code class="bash string">"$libc_version < 2.14"</code> <code class="bash plain">| </code><code class="bash functions">bc</code><code class="bash plain">` </code>
</div>
<div class="line number21 index20 alt2">
<code class="bash spaces"> </code><code class="bash plain">[ $libc_yn == </code><code class="bash string">'1'</code> <code class="bash plain">] && glibc_flag=linux || glibc_flag=linux-glibc_214 </code>
</div>
<div class="line number22 index21 alt1">
<code class="bash spaces"> </code><code class="bash plain">db=mariadb </code>
</div>
<div class="line number23 index22 alt2">
<code class="bash spaces"> </code><code class="bash plain">old_db_version=`</code><code class="bash functions">echo</code> <code class="bash plain">$old_db_version_tmp | </code><code class="bash functions">awk</code> <code class="bash plain">-f</code><code class="bash string">'-'</code> <code class="bash string">'{print $1}'</code><code class="bash plain">` </code>
</div>
<div class="line number24 index23 alt1">
<code class="bash keyword">elif</code> <code class="bash plain">[ -n </code><code class="bash string">"$db_tmp"</code> <code class="bash plain">-a </code><code class="bash string">"$db_tmp"</code> <code class="bash plain">!= </code><code class="bash string">'mariadb'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number25 index24 alt2">
<code class="bash spaces"> </code><code class="bash plain">db=percona </code>
</div>
<div class="line number26 index25 alt1">
<code class="bash spaces"> </code><code class="bash plain">old_db_version=$old_db_version_tmp </code>
</div>
<div class="line number27 index26 alt2">
<code class="bash keyword">else</code>
</div>
<div class="line number28 index27 alt1">
<code class="bash spaces"> </code><code class="bash plain">db=mysql </code>
</div>
<div class="line number29 index28 alt2">
<code class="bash spaces"> </code><code class="bash plain">old_db_version=$old_db_version_tmp </code>
</div>
<div class="line number30 index29 alt1">
<code class="bash keyword">fi</code>
</div>
<div class="line number31 index30 alt2">
<code class="bash spaces"> </code>
</div>
<div class="line number32 index31 alt1">
<code class="bash comments">#backup </code>
</div>
<div class="line number33 index32 alt2">
<code class="bash keyword">while</code> <code class="bash plain">: </code>
</div>
<div class="line number34 index33 alt1">
<code class="bash keyword">do</code>
</div>
<div class="line number35 index34 alt2">
<code class="bash spaces"> </code><code class="bash plain">$db_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"quit"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number36 index35 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ];</code><code class="bash keyword">then</code>
</div>
<div class="line number37 index36 alt2">
<code class="bash spaces"> </code><code class="bash keyword">break</code>
</div>
<div class="line number38 index37 alt1">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number39 index38 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code>
</div>
<div class="line number40 index39 alt1">
<code class="bash spaces"> </code><code class="bash functions">read</code> <code class="bash plain">-p </code><code class="bash string">"please input the root password of database: "</code> <code class="bash plain">new_dbrootpwd </code>
</div>
<div class="line number41 index40 alt2">
<code class="bash spaces"> </code><code class="bash plain">$db_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${new_dbrootpwd} -e </code><code class="bash string">"quit"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number42 index41 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ];</code><code class="bash keyword">then</code>
</div>
<div class="line number43 index42 alt2">
<code class="bash spaces"> </code><code class="bash plain">dbrootpwd=$new_dbrootpwd </code>
</div>
<div class="line number44 index43 alt1">
<code class="bash spaces"> </code><code class="bash functions">sed</code> <code class="bash plain">-i </code><code class="bash string">"s+^dbrootpwd.*+dbrootpwd='$dbrootpwd'+"</code> <code class="bash plain">..</code><code class="bash plain">/options</code><code class="bash plain">.conf </code>
</div>
<div class="line number45 index44 alt2">
<code class="bash spaces"> </code><code class="bash keyword">break</code>
</div>
<div class="line number46 index45 alt1">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number47 index46 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"${cfailure}$db root password incorrect,please enter again! ${cend}"</code>
</div>
<div class="line number48 index47 alt1">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number49 index48 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number50 index49 alt1">
<code class="bash keyword">done</code>
</div>
<div class="line number51 index50 alt2">
<code class="bash spaces"> </code>
</div>
<div class="line number52 index51 alt1">
<code class="bash functions">echo</code>
</div>
<div class="line number53 index52 alt2">
<code class="bash functions">echo</code> <code class="bash string">"${csuccess}starting $db backup${cend}......"</code>
</div>
<div class="line number54 index53 alt1">
<code class="bash plain">$db_install_dir</code><code class="bash plain">/bin/mysqldump</code> <code class="bash plain">-uroot -p${dbrootpwd} --opt --all-databases > db_all_backup_$(</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">).sql </code>
</div>
<div class="line number55 index54 alt2">
<code class="bash plain">[ -f </code><code class="bash string">"db_all_backup_$(date +"</code><code class="bash plain">%y%m%d</code><code class="bash string">").sql"</code> <code class="bash plain">] && </code><code class="bash functions">echo</code> <code class="bash string">"$db backup success, backup file: ${msg}`pwd`/db_all_backup_$(date +"</code><code class="bash plain">%y%m%d</code><code class="bash string">").sql${cend}"</code>
</div>
<div class="line number56 index55 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number57 index56 alt2">
<code class="bash comments">#upgrade </code>
</div>
<div class="line number58 index57 alt1">
<code class="bash functions">echo</code>
</div>
<div class="line number59 index58 alt2">
<code class="bash functions">echo</code> <code class="bash string">"current $db version: ${cmsg}$old_db_version${cend}"</code>
</div>
<div class="line number60 index59 alt1">
<code class="bash plain">[ -e </code><code class="bash plain">/usr/local/lib/libtcmalloc</code><code class="bash plain">.so ] && { je_tc_malloc=2; exe_linker=</code><code class="bash string">"-dcmake_exe_linker_flags='-ltcmalloc'"</code><code class="bash plain">; } </code>
</div>
<div class="line number61 index60 alt2">
<code class="bash plain">[ -e </code><code class="bash plain">/usr/local/lib/libjemalloc</code><code class="bash plain">.so ] && { je_tc_malloc=1; exe_linker=</code><code class="bash string">"-dcmake_exe_linker_flags='-ljemalloc'"</code><code class="bash plain">; } </code>
</div>
<div class="line number62 index61 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number63 index62 alt2">
<code class="bash keyword">while</code> <code class="bash plain">: </code>
</div>
<div class="line number64 index63 alt1">
<code class="bash keyword">do</code>
</div>
<div class="line number65 index64 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code>
</div>
<div class="line number66 index65 alt1">
<code class="bash spaces"> </code><code class="bash functions">read</code> <code class="bash plain">-p </code><code class="bash string">"please input upgrade $db version(example: $old_db_version): "</code> <code class="bash plain">new_db_version </code>
</div>
<div class="line number67 index66 alt2">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ `</code><code class="bash functions">echo</code> <code class="bash plain">$new_db_version | </code><code class="bash functions">awk</code> <code class="bash plain">-f. </code><code class="bash string">'{print $1"."$2}'</code><code class="bash plain">` == `</code><code class="bash functions">echo</code> <code class="bash plain">$old_db_version | </code><code class="bash functions">awk</code> <code class="bash plain">-f. </code><code class="bash string">'{print $1"."$2}'</code><code class="bash plain">` ]; </code><code class="bash keyword">then</code>
</div>
<div class="line number68 index67 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'mariadb'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number69 index68 alt2">
<code class="bash spaces"> </code><code class="bash plain">db_name=mariadb-${new_db_version}-${glibc_flag}-${sys_bit_b} </code>
</div>
<div class="line number70 index69 alt1">
<code class="bash spaces"> </code><code class="bash plain">db_url=$down_addr</code><code class="bash plain">/mariadb-</code><code class="bash plain">${new_db_version}</code><code class="bash plain">/bintar-</code><code class="bash plain">${glibc_flag}-$sys_bit_a/$db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number71 index70 alt2">
<code class="bash spaces"> </code><code class="bash keyword">elif</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'percona'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number72 index71 alt1">
<code class="bash spaces"> </code><code class="bash plain">db_name=percona-server-$new_db_version </code>
</div>
<div class="line number73 index72 alt2">
<code class="bash spaces"> </code><code class="bash plain">db_url=http:</code><code class="bash plain">//www</code><code class="bash plain">.percona.com</code><code class="bash plain">/redir/downloads/percona-server-</code><code class="bash plain">`</code><code class="bash functions">echo</code> <code class="bash plain">$new_db_version | </code><code class="bash functions">awk</code> <code class="bash plain">-f. </code><code class="bash string">'{print $1"."$2}'</code><code class="bash plain">`</code><code class="bash plain">/latest/source/tarball/</code><code class="bash plain">$db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number74 index73 alt1">
<code class="bash spaces"> </code><code class="bash keyword">elif</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'mysql'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number75 index74 alt2">
<code class="bash spaces"> </code><code class="bash plain">db_name=mysql-$new_db_version </code>
</div>
<div class="line number76 index75 alt1">
<code class="bash spaces"> </code><code class="bash plain">db_url=http:</code><code class="bash plain">//cdn</code><code class="bash plain">.mysql.com</code><code class="bash plain">/downloads/mysql-</code><code class="bash plain">`</code><code class="bash functions">echo</code> <code class="bash plain">$new_db_version | </code><code class="bash functions">awk</code> <code class="bash plain">-f. </code><code class="bash string">'{print $1"."$2}'</code><code class="bash plain">`/$db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number77 index76 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number78 index77 alt1">
<code class="bash spaces"> </code><code class="bash plain">[ ! -e </code><code class="bash string">"$db_name.tar.gz"</code> <code class="bash plain">] && wget --no-check-certificate -c $db_url > </code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number79 index78 alt2">
<code class="bash spaces"> </code>
</div>
<div class="line number80 index79 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ -e </code><code class="bash string">"$db_name.tar.gz"</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number81 index80 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"download [${cmsg}$db_name.tar.gz${cend}] successfully! "</code>
</div>
<div class="line number82 index81 alt1">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number83 index82 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}$db version does not exist! ${cend}"</code>
</div>
<div class="line number84 index83 alt1">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number85 index84 alt2">
<code class="bash spaces"> </code><code class="bash keyword">break</code>
</div>
<div class="line number86 index85 alt1">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number87 index86 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"${cwarning}input error! ${cend}please only input '${cmsg}${old_db_version%.*}.xx${cend}'"</code>
</div>
<div class="line number88 index87 alt1">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number89 index88 alt2">
<code class="bash keyword">done</code>
</div>
<div class="line number90 index89 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number91 index90 alt2">
<code class="bash keyword">if</code> <code class="bash plain">[ -e </code><code class="bash string">"$db_name.tar.gz"</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number92 index91 alt1">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"[${cmsg}$db_name.tar.gz${cend}] found"</code>
</div>
<div class="line number93 index92 alt2">
<code class="bash spaces"> </code><code class="bash functions">echo</code> <code class="bash string">"press ctrl+c to cancel or press any key to continue..."</code>
</div>
<div class="line number94 index93 alt1">
<code class="bash spaces"> </code><code class="bash plain">char=`get_char` </code>
</div>
<div class="line number95 index94 alt2">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'mariadb'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number96 index95 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld stop </code>
</div>
<div class="line number97 index96 alt2">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${mariadb_install_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number98 index97 alt1">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${mariadb_data_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number99 index98 alt2">
<code class="bash spaces"> </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $mariadb_data_dir;</code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $mariadb_data_dir </code>
</div>
<div class="line number100 index99 alt1">
<code class="bash spaces"> </code><code class="bash functions">tar</code> <code class="bash plain">xzf $db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number101 index100 alt2">
<code class="bash spaces"> </code><code class="bash plain">[ ! -d </code><code class="bash string">"$mariadb_install_dir"</code> <code class="bash plain">] && </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $mariadb_install_dir </code>
</div>
<div class="line number102 index101 alt1">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">mariadb-${new_db_version}-*-${sys_bit_b}/* $mariadb_install_dir </code>
</div>
<div class="line number103 index102 alt2">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"$je_tc_malloc"</code> <code class="bash plain">== </code><code class="bash string">'1'</code> <code class="bash plain">-a </code><code class="bash string">"`echo $old_db_version_tmp | awk -f'.' '{print $1"</code><code class="bash plain">.</code><code class="bash string">"$2}'`"</code> <code class="bash plain">!= </code><code class="bash string">'10.1'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number104 index103 alt1">
<code class="bash spaces"> </code><code class="bash functions">sed</code> <code class="bash plain">-i </code><code class="bash string">'s@executing mysqld_safe@executing mysqld_safe\nexport ld_preload=/usr/local/lib/libjemalloc.so@'</code> <code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/bin/mysqld_safe</code>
</div>
<div class="line number105 index104 alt2">
<code class="bash spaces"> </code><code class="bash keyword">elif</code> <code class="bash plain">[ </code><code class="bash string">"$je_tc_malloc"</code> <code class="bash plain">== </code><code class="bash string">'2'</code> <code class="bash plain">-a </code><code class="bash string">"`echo $old_db_version_tmp | awk -f'.' '{print $1"</code><code class="bash plain">.</code><code class="bash string">"$2}'`"</code> <code class="bash plain">!= </code><code class="bash string">'10.1'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number106 index105 alt1">
<code class="bash spaces"> </code><code class="bash functions">sed</code> <code class="bash plain">-i </code><code class="bash string">'s@executing mysqld_safe@executing mysqld_safe\nexport ld_preload=/usr/local/lib/libtcmalloc.so@'</code> <code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/bin/mysqld_safe</code>
</div>
<div class="line number107 index106 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number108 index107 alt1">
<code class="bash spaces"> </code><code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/scripts/mysql_install_db</code> <code class="bash plain">--user=mysql --basedir=$mariadb_install_dir --datadir=$mariadb_data_dir </code>
</div>
<div class="line number109 index108 alt2">
<code class="bash spaces"> </code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $mariadb_data_dir </code>
</div>
<div class="line number110 index109 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld start </code>
</div>
<div class="line number111 index110 alt2">
<code class="bash spaces"> </code><code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">< db_all_backup_$(</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">).sql </code>
</div>
<div class="line number112 index111 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld restart </code>
</div>
<div class="line number113 index112 alt2">
<code class="bash spaces"> </code><code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"drop database test;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number114 index113 alt1">
<code class="bash spaces"> </code><code class="bash plain">$mariadb_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"reset master;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number115 index114 alt2">
<code class="bash spaces"> </code><code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ] && </code><code class="bash functions">echo</code> <code class="bash string">"you have ${cmsg}successfully${cend} upgrade from ${cmsg}$old_db_version${cend} to ${cmsg}$new_db_version${cend}"</code>
</div>
<div class="line number116 index115 alt1">
<code class="bash spaces"> </code><code class="bash keyword">elif</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'percona'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number117 index116 alt2">
<code class="bash spaces"> </code><code class="bash functions">tar</code> <code class="bash plain">zxf $db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number118 index117 alt1">
<code class="bash spaces"> </code><code class="bash functions">cd</code> <code class="bash plain">$db_name </code>
</div>
<div class="line number119 index118 alt2">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash plain">clean </code>
</div>
<div class="line number120 index119 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"`echo $new_db_version | awk -f. '{print $1"</code><code class="bash plain">.</code><code class="bash string">"$2}'`"</code> <code class="bash plain">== </code><code class="bash string">'5.5'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number121 index120 alt2">
<code class="bash spaces"> </code><code class="bash plain">cmake . -dcmake_install_prefix=$percona_install_dir \ </code>
</div>
<div class="line number122 index121 alt1">
<code class="bash plain">-dmysql_datadir=$percona_data_dir \ </code>
</div>
<div class="line number123 index122 alt2">
<code class="bash plain">-dsysconfdir=</code><code class="bash plain">/etc</code> <code class="bash plain">\ </code>
</div>
<div class="line number124 index123 alt1">
<code class="bash plain">-dwith_innobase_storage_engine=1 \ </code>
</div>
<div class="line number125 index124 alt2">
<code class="bash plain">-dwith_partition_storage_engine=1 \ </code>
</div>
<div class="line number126 index125 alt1">
<code class="bash plain">-dwith_federated_storage_engine=1 \ </code>
</div>
<div class="line number127 index126 alt2">
<code class="bash plain">-dwith_blackhole_storage_engine=1 \ </code>
</div>
<div class="line number128 index127 alt1">
<code class="bash plain">-dwith_myisam_storage_engine=1 \ </code>
</div>
<div class="line number129 index128 alt2">
<code class="bash plain">-dwith_archive_storage_engine=1 \ </code>
</div>
<div class="line number130 index129 alt1">
<code class="bash plain">-dwith_readline=1 \ </code>
</div>
<div class="line number131 index130 alt2">
<code class="bash plain">-denable_dtrace=0 \ </code>
</div>
<div class="line number132 index131 alt1">
<code class="bash plain">-denabled_local_infile=1 \ </code>
</div>
<div class="line number133 index132 alt2">
<code class="bash plain">-ddefault_charset=utf8mb4 \ </code>
</div>
<div class="line number134 index133 alt1">
<code class="bash plain">-ddefault_collation=utf8mb4_general_ci \ </code>
</div>
<div class="line number135 index134 alt2">
<code class="bash plain">$exe_linker </code>
</div>
<div class="line number136 index135 alt1">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number137 index136 alt2">
<code class="bash spaces"> </code><code class="bash plain">cmake . -dcmake_install_prefix=$percona_install_dir \ </code>
</div>
<div class="line number138 index137 alt1">
<code class="bash plain">-dmysql_datadir=$percona_data_dir \ </code>
</div>
<div class="line number139 index138 alt2">
<code class="bash plain">-dsysconfdir=</code><code class="bash plain">/etc</code> <code class="bash plain">\ </code>
</div>
<div class="line number140 index139 alt1">
<code class="bash plain">-dwith_innobase_storage_engine=1 \ </code>
</div>
<div class="line number141 index140 alt2">
<code class="bash plain">-dwith_partition_storage_engine=1 \ </code>
</div>
<div class="line number142 index141 alt1">
<code class="bash plain">-dwith_federated_storage_engine=1 \ </code>
</div>
<div class="line number143 index142 alt2">
<code class="bash plain">-dwith_blackhole_storage_engine=1 \ </code>
</div>
<div class="line number144 index143 alt1">
<code class="bash plain">-dwith_myisam_storage_engine=1 \ </code>
</div>
<div class="line number145 index144 alt2">
<code class="bash plain">-dwith_archive_storage_engine=1 \ </code>
</div>
<div class="line number146 index145 alt1">
<code class="bash plain">-denabled_local_infile=1 \ </code>
</div>
<div class="line number147 index146 alt2">
<code class="bash plain">-denable_dtrace=0 \ </code>
</div>
<div class="line number148 index147 alt1">
<code class="bash plain">-ddefault_charset=utf8mb4 \ </code>
</div>
<div class="line number149 index148 alt2">
<code class="bash plain">-ddefault_collation=utf8mb4_general_ci \ </code>
</div>
<div class="line number150 index149 alt1">
<code class="bash plain">$exe_linker </code>
</div>
<div class="line number151 index150 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number152 index151 alt1">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash plain">-j `</code><code class="bash functions">grep</code> <code class="bash plain">processor </code><code class="bash plain">/proc/cpuinfo</code> <code class="bash plain">| </code><code class="bash functions">wc</code> <code class="bash plain">-l` </code>
</div>
<div class="line number153 index152 alt2">
<code class="bash spaces"> </code><code class="bash plain">service mysqld stop </code>
</div>
<div class="line number154 index153 alt1">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${percona_install_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number155 index154 alt2">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${percona_data_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number156 index155 alt1">
<code class="bash spaces"> </code><code class="bash plain">[ ! -d </code><code class="bash string">"$percona_install_dir"</code> <code class="bash plain">] && </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $percona_install_dir </code>
</div>
<div class="line number157 index156 alt2">
<code class="bash spaces"> </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $percona_data_dir;</code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $percona_data_dir </code>
</div>
<div class="line number158 index157 alt1">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
<div class="line number159 index158 alt2">
<code class="bash spaces"> </code><code class="bash functions">cd</code> <code class="bash plain">.. </code>
</div>
<div class="line number160 index159 alt1">
<code class="bash spaces"> </code><code class="bash plain">$percona_install_dir</code><code class="bash plain">/scripts/mysql_install_db</code> <code class="bash plain">--user=mysql --basedir=$percona_install_dir --datadir=$percona_data_dir </code>
</div>
<div class="line number161 index160 alt2">
<code class="bash spaces"> </code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $percona_data_dir </code>
</div>
<div class="line number162 index161 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld start </code>
</div>
<div class="line number163 index162 alt2">
<code class="bash spaces"> </code><code class="bash plain">$percona_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">< db_all_backup_$(</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">).sql </code>
</div>
<div class="line number164 index163 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld restart </code>
</div>
<div class="line number165 index164 alt2">
<code class="bash spaces"> </code><code class="bash plain">$percona_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"drop database test;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number166 index165 alt1">
<code class="bash spaces"> </code><code class="bash plain">$percona_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"reset master;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number167 index166 alt2">
<code class="bash spaces"> </code><code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ] && </code><code class="bash functions">echo</code> <code class="bash string">"you have ${cmsg}successfully${cend} upgrade from ${cmsg}$old_db_version${cend} to ${cmsg}$new_db_version${cend}"</code>
</div>
<div class="line number168 index167 alt1">
<code class="bash spaces"> </code><code class="bash keyword">elif</code> <code class="bash plain">[ </code><code class="bash string">"$db"</code> <code class="bash plain">== </code><code class="bash string">'mysql'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number169 index168 alt2">
<code class="bash spaces"> </code><code class="bash functions">tar</code> <code class="bash plain">zxf $db_name.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code>
</div>
<div class="line number170 index169 alt1">
<code class="bash spaces"> </code><code class="bash functions">cd</code> <code class="bash plain">$db_name </code>
</div>
<div class="line number171 index170 alt2">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash plain">clean </code>
</div>
<div class="line number172 index171 alt1">
<code class="bash spaces"> </code><code class="bash keyword">if</code> <code class="bash plain">[ </code><code class="bash string">"`echo $new_db_version | awk -f. '{print $1"</code><code class="bash plain">.</code><code class="bash string">"$2}'`"</code> <code class="bash plain">== </code><code class="bash string">'5.5'</code> <code class="bash plain">];</code><code class="bash keyword">then</code>
</div>
<div class="line number173 index172 alt2">
<code class="bash spaces"> </code><code class="bash plain">cmake . -dcmake_install_prefix=$mysql_install_dir \ </code>
</div>
<div class="line number174 index173 alt1">
<code class="bash plain">-dmysql_datadir=$mysql_data_dir \ </code>
</div>
<div class="line number175 index174 alt2">
<code class="bash plain">-dsysconfdir=</code><code class="bash plain">/etc</code> <code class="bash plain">\ </code>
</div>
<div class="line number176 index175 alt1">
<code class="bash plain">-dwith_innobase_storage_engine=1 \ </code>
</div>
<div class="line number177 index176 alt2">
<code class="bash plain">-dwith_partition_storage_engine=1 \ </code>
</div>
<div class="line number178 index177 alt1">
<code class="bash plain">-dwith_federated_storage_engine=1 \ </code>
</div>
<div class="line number179 index178 alt2">
<code class="bash plain">-dwith_blackhole_storage_engine=1 \ </code>
</div>
<div class="line number180 index179 alt1">
<code class="bash plain">-dwith_myisam_storage_engine=1 \ </code>
</div>
<div class="line number181 index180 alt2">
<code class="bash plain">-dwith_archive_storage_engine=1 \ </code>
</div>
<div class="line number182 index181 alt1">
<code class="bash plain">-dwith_readline=1 \ </code>
</div>
<div class="line number183 index182 alt2">
<code class="bash plain">-denabled_local_infile=1 \ </code>
</div>
<div class="line number184 index183 alt1">
<code class="bash plain">-denable_dtrace=0 \ </code>
</div>
<div class="line number185 index184 alt2">
<code class="bash plain">-ddefault_charset=utf8mb4 \ </code>
</div>
<div class="line number186 index185 alt1">
<code class="bash plain">-ddefault_collation=utf8mb4_general_ci \ </code>
</div>
<div class="line number187 index186 alt2">
<code class="bash plain">-dwith_embedded_server=1 \ </code>
</div>
<div class="line number188 index187 alt1">
<code class="bash plain">$exe_linker </code>
</div>
<div class="line number189 index188 alt2">
<code class="bash spaces"> </code><code class="bash keyword">else</code>
</div>
<div class="line number190 index189 alt1">
<code class="bash spaces"> </code><code class="bash plain">cmake . -dcmake_install_prefix=$mysql_install_dir \ </code>
</div>
<div class="line number191 index190 alt2">
<code class="bash plain">-dmysql_datadir=$mysql_data_dir \ </code>
</div>
<div class="line number192 index191 alt1">
<code class="bash plain">-dsysconfdir=</code><code class="bash plain">/etc</code> <code class="bash plain">\ </code>
</div>
<div class="line number193 index192 alt2">
<code class="bash plain">-dwith_innobase_storage_engine=1 \ </code>
</div>
<div class="line number194 index193 alt1">
<code class="bash plain">-dwith_partition_storage_engine=1 \ </code>
</div>
<div class="line number195 index194 alt2">
<code class="bash plain">-dwith_federated_storage_engine=1 \ </code>
</div>
<div class="line number196 index195 alt1">
<code class="bash plain">-dwith_blackhole_storage_engine=1 \ </code>
</div>
<div class="line number197 index196 alt2">
<code class="bash plain">-dwith_myisam_storage_engine=1 \ </code>
</div>
<div class="line number198 index197 alt1">
<code class="bash plain">-denabled_local_infile=1 \ </code>
</div>
<div class="line number199 index198 alt2">
<code class="bash plain">-denable_dtrace=0 \ </code>
</div>
<div class="line number200 index199 alt1">
<code class="bash plain">-ddefault_charset=utf8mb4 \ </code>
</div>
<div class="line number201 index200 alt2">
<code class="bash plain">-ddefault_collation=utf8mb4_general_ci \ </code>
</div>
<div class="line number202 index201 alt1">
<code class="bash plain">-dwith_embedded_server=1 \ </code>
</div>
<div class="line number203 index202 alt2">
<code class="bash plain">$exe_linker </code>
</div>
<div class="line number204 index203 alt1">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number205 index204 alt2">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash plain">-j `</code><code class="bash functions">grep</code> <code class="bash plain">processor </code><code class="bash plain">/proc/cpuinfo</code> <code class="bash plain">| </code><code class="bash functions">wc</code> <code class="bash plain">-l` </code>
</div>
<div class="line number206 index205 alt1">
<code class="bash spaces"> </code><code class="bash plain">service mysqld stop </code>
</div>
<div class="line number207 index206 alt2">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${mysql_install_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number208 index207 alt1">
<code class="bash spaces"> </code><code class="bash functions">mv</code> <code class="bash plain">${mysql_data_dir}{,_old_`</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">`} </code>
</div>
<div class="line number209 index208 alt2">
<code class="bash spaces"> </code><code class="bash plain">[ ! -d </code><code class="bash string">"$mysql_install_dir"</code> <code class="bash plain">] && </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $mysql_install_dir </code>
</div>
<div class="line number210 index209 alt1">
<code class="bash spaces"> </code><code class="bash functions">mkdir</code> <code class="bash plain">-p $mysql_data_dir;</code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $mysql_data_dir </code>
</div>
<div class="line number211 index210 alt2">
<code class="bash spaces"> </code><code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
<div class="line number212 index211 alt1">
<code class="bash spaces"> </code><code class="bash functions">cd</code> <code class="bash plain">.. </code>
</div>
<div class="line number213 index212 alt2">
<code class="bash spaces"> </code><code class="bash plain">$mysql_install_dir</code><code class="bash plain">/scripts/mysql_install_db</code> <code class="bash plain">--user=mysql --basedir=$mysql_install_dir --datadir=$mysql_data_dir </code>
</div>
<div class="line number214 index213 alt1">
<code class="bash spaces"> </code><code class="bash functions">chown</code> <code class="bash plain">mysql.mysql -r $mysql_data_dir </code>
</div>
<div class="line number215 index214 alt2">
<code class="bash spaces"> </code><code class="bash plain">service mysqld start </code>
</div>
<div class="line number216 index215 alt1">
<code class="bash spaces"> </code><code class="bash plain">$mysql_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">< db_all_backup_$(</code><code class="bash functions">date</code> <code class="bash plain">+</code><code class="bash string">"%y%m%d"</code><code class="bash plain">).sql </code>
</div>
<div class="line number217 index216 alt2">
<code class="bash spaces"> </code><code class="bash plain">service mysqld restart </code>
</div>
<div class="line number218 index217 alt1">
<code class="bash spaces"> </code><code class="bash plain">$mysql_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"drop database test;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number219 index218 alt2">
<code class="bash spaces"> </code><code class="bash plain">$mysql_install_dir</code><code class="bash plain">/bin/mysql</code> <code class="bash plain">-uroot -p${dbrootpwd} -e </code><code class="bash string">"reset master;"</code> <code class="bash plain">></code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1 </code>
</div>
<div class="line number220 index219 alt1">
<code class="bash spaces"> </code><code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ] && </code><code class="bash functions">echo</code> <code class="bash string">"you have ${cmsg}successfully${cend} upgrade from ${cmsg}$old_db_version${cend} to ${cmsg}$new_db_version${cend}"</code>
</div>
<div class="line number221 index220 alt2">
<code class="bash spaces"> </code><code class="bash keyword">fi</code>
</div>
<div class="line number222 index221 alt1">
<code class="bash keyword">fi</code>
</div>
<div class="line number223 index222 alt2">
<code class="bash plain">} </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
頁:
[1]