2、在Ubuntu中安装mysql
<p class="a"><span style="color: rgba(255, 0, 0, 1)"><strong>提示:以下操作均在root权限下进行。</strong></span></p><p class="a"># 查看有没有安装MySQL: <span style="color: rgba(255, 0, 0, 1)"><strong>dpkg -l | grep mysql </strong></span></p>
<p class="a">1、安装MySQL: <span style="color: rgba(255, 0, 0, 1)"><strong>apt install mysql-server</strong></span></p>
<p class="a"><strong><img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817222339213-706723674.png" alt="" loading="lazy"></strong></p>
<p> </p>
<p class="a">2、安装完成之后可以使用如下命令来检查是否安装成功:</p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)"><strong>netstat -tap | grep mysql</strong></span></p>
<p class="a">通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。</p>
<p class="a"><img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817222421170-299997198.png" alt="" loading="lazy"></p>
<p> </p>
<p>3、登录mysql数据库可以通过如下命令: <span style="color: rgba(255, 0, 0, 1)"><strong>mysql -u root -p</strong></span></p>
<p class="a"><span style="text-decoration: underline">-u 表示选择登陆的用户名, -p 表示登陆的用户密码,现在是mysql数据库是没有密码的,Enter password:处直接回车,就能够进入mysql数据库。</span></p>
<p class="a"> </p>
<p class="a">4、然后通过 show databases; 就可以查看当前的所有数据库。</p>
<p class="a"><img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817222607125-783510374.png" alt="" loading="lazy"></p>
<p> 接下来,为了确保数据库的安全性和正常运转,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。</p>
<p class="a">(1)安装验证密码插件。</p>
<p class="a">(2)设置root管理员在数据库中的专有密码。</p>
<p class="a">(3)随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。</p>
<p class="a">(4)删除默认的测试数据库,取消测试数据库的一系列访问权限。</p>
<p class="a">(5)刷新授权列表,让初始化的设定立即生效。</p>
<p class="a"> </p>
<p class="a">对于上述数据库初始化的操作步骤,在下面的输出信息旁边我做了简单注释。</p>
<p class="a">root@ubuntu-virtual-machine:~# <span style="color: rgba(255, 0, 0, 1)">mysql_secure_installation</span></p>
<p class="a">Securing the MySQL server deployment.</p>
<p class="a">Connecting to MySQL using a blank password.</p>
<p class="a">VALIDATE PASSWORD PLUGIN can be used to test passwords</p>
<p class="a">and improve security. It checks the strength of password</p>
<p class="a">and allows the users to set only those passwords which are</p>
<p class="a">secure enough. Would you like to setup VALIDATE PASSWORD plugin? #要安装验证密码插件吗?</p>
<p class="a">Press y|Y for Yes, any other key for No: <span style="color: rgba(255, 0, 0, 1)">N # 这里我选择N</span></p>
<p class="a"> </p>
<p class="a">Please set the password for root here.</p>
<p class="a">New password: <span style="color: rgba(255, 0, 0, 1)">#输入要为root管理员设置的数据库密码</span></p>
<p class="a">Re-enter new password: <span style="color: rgba(255, 0, 0, 1)">#再次输入密码</span></p>
<p class="a"> </p>
<p class="a">By default, a MySQL installation has an anonymous user,</p>
<p class="a">allowing anyone to log into MySQL without having to have</p>
<p class="a">a user account created for them. This is intended only for</p>
<p class="a">testing, and to make the installation go a bit smoother.</p>
<p class="a">You should remove them before moving into a production</p>
<p class="a">environment.</p>
<p class="a">Remove anonymous users? (Press y|Y for Yes, any other key for No) : <span style="color: rgba(255, 0, 0, 1)">y #删除匿名账户</span></p>
<p class="a">Success.</p>
<p class="a"> </p>
<p class="a">Normally, root should only be allowed to connect from</p>
<p class="a">'localhost'. This ensures that someone cannot guess at</p>
<p class="a">the root password from the network.</p>
<p class="a">Disallow root login remotely? (Press y|Y for Yes, any other key for No) : <span style="color: rgba(255, 0, 0, 1)">N #禁止root管理员从远程登录,这里我没有禁止</span></p>
<p class="a"> </p>
<p class="a">... skipping.</p>
<p class="a">By default, MySQL comes with a database named 'test' that</p>
<p class="a">anyone can access. This is also intended only for testing,</p>
<p class="a">and should be removed before moving into a production</p>
<p class="a">environment.</p>
<p class="a">Remove test database and access to it? (Press y|Y for Yes, any other key for No) : <span style="color: rgba(255, 0, 0, 1)">y #删除test数据库并取消对它的访问权限</span></p>
<p class="a"> </p>
<p class="a">- Dropping test database...</p>
<p class="a">Success.</p>
<p class="a">- Removing privileges on test database...</p>
<p class="a">Success.</p>
<p class="a">Reloading the privilege tables will ensure that all changes</p>
<p class="a">made so far will take effect immediately.</p>
<p class="a">Reload privilege tables now? (Press y|Y for Yes, any other key for No) : <span style="color: rgba(255, 0, 0, 1)">y #刷新授权表,让初始化后的设定立即生效</span></p>
<p class="a">Success.</p>
<p class="a">All done!</p>
<p class="a"> <img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817222802403-1829006199.png" alt="" loading="lazy"></p>
<p> </p>
<p>5、检查mysql服务状态: <strong> <span style="color: rgba(255, 0, 0, 1)">systemctl status mysql</span></strong></p>
<p class="a">显示如下结果说明mysql服务运行是正常的:</p>
<p class="a"><img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817222831746-559085151.png" alt="" loading="lazy"></p>
<p> 再次用mysql -u root -p命令,Enter password:处输入刚设置的密码,回车,就能够进入mysql数据库。</p>
<p class="a"> </p>
<p class="a">使用 use mysql; 命令打开mysql命名的数据库;</p>
<p class="a"> show tables; 显示当前数据库的表</p>
<p class="a"> select * from user; 查询user表里的数据:(user表里是mysql数据库的所有账户信息)</p>
<p class="a" align="center"> </p>
<p class="a"> </p>
<p class="a"><strong>======================</strong><strong>配置mysql允许远程访问=================</strong></p>
<p class="a">1、开启数据库3306端口</p>
<p class="a"> 首先,使用如下指令查看3306端口是否对外开放。</p>
<p class="a"><strong> <span style="color: rgba(255, 0, 0, 1)">netstat -an | grep 3306 </span></strong></p>
<p class="a"><strong><span style="color: rgba(255, 0, 0, 1)"> tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN </span> </strong></p>
<p class="a">如果显示如上,说明mysql端口目前只监听本地连接127.0.0.1。然后需要修改mysql的配置文件</p>
<p class="a"> </p>
<p class="a">2、首先编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件:</p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)"><strong> vim /etc/mysql/mysql.conf.d/mysqld.cnf </strong></span></p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)">注释掉bind-address = 127.0.0.1</span></p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)"><img src="https://img2020.cnblogs.com/blog/463872/202108/463872-20210817223028136-2058418076.png" alt="" loading="lazy"></span></p>
<p> 保存退出。</p>
<p> </p>
<p class="a">3、然后进入mysql数据库,执行授权命令:</p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)">mysql -u root -p</span></p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)">mysql> grant all on *.* to root@'%' identified by '你的密码' with grant option;</span></p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)">mysql> flush privileges; # 刷新权限</span></p>
<p class="a"><span style="color: rgba(255, 0, 0, 1)">mysql> exit</span></p>
<p class="a"> </p>
<p class="a">4、然后执行exit命令退出mysql服务,再执行如下命令重启mysql:</p>
<p class="a"><strong><span style="color: rgba(255, 0, 0, 1)"> sudo service mysql restart </span></strong></p>
<p class="a"> </p>
<p class="a">5、在防火墙中开启3306端口</p>
<p class="a">如果执行了前三个步骤仍然不能远程访问mysql,那么有可能是防火墙阻止访问,需要开启允许访问。</p>
<p class="a"><strong> <span style="color: rgba(255, 0, 0, 1)">sudo ufw allow 3306 </span></strong></p>
<p class="a"> </p>
<p class="a">然后使用navicat登录就可以了</p>
<p class="a">OK,到这里Ubuntu18.04下安装MySQL已经完成了。</p>
<p class="a"> </p>
<p align="left"> </p>
<p align="left"> </p>
<p> </p>
<p><textarea id="BFI_DATA" style="width: 1px; height: 1px; display: none"></textarea></p>
<div id="WidgetFloaterPanels" class="LTRStyle" style="display: none; text-align: left; direction: ltr; visibility: hidden">
<div id="WidgetFloater" style="display: none">
<div id="WidgetLogoPanel"><span id="WidgetTranslateWithSpan"><span>TRANSLATE with </span><img id="FloaterLogo"></span> <span id="WidgetCloseButton" title="Exit Translation">x</span></div>
<div id="LanguageMenuPanel">
<div class="DDStyle_outer"><input id="LanguageMenu_svid" style="display: none" type="text" name="LanguageMenu_svid" value="en"> <input id="LanguageMenu_textid" style="display: none" type="text" name="LanguageMenu_textid"> <span id="__LanguageMenu_header" class="DDStyle">English</span>
<div style="position: relative; text-align: left; left: 0">
<div style="position: absolute; left: 0">
<div id="__LanguageMenu_popup" class="DDStyle" style="display: none">
<table id="LanguageMenu" border="0">
<tbody>
<tr>
<td>Arabic</td>
<td>Hebrew</td>
<td>Polish</td>
</tr>
<tr>
<td>Bulgarian</td>
<td>Hindi</td>
<td>Portuguese</td>
</tr>
<tr>
<td>Catalan</td>
<td>Hmong Daw</td>
<td>Romanian</td>
</tr>
<tr>
<td>Chinese Simplified</td>
<td>Hungarian</td>
<td>Russian</td>
</tr>
<tr>
<td>Chinese Traditional</td>
<td>Indonesian</td>
<td>Slovak</td>
</tr>
<tr>
<td>Czech</td>
<td>Italian</td>
<td>Slovenian</td>
</tr>
<tr>
<td>Danish</td>
<td>Japanese</td>
<td>Spanish</td>
</tr>
<tr>
<td>Dutch</td>
<td>Klingon</td>
<td>Swedish</td>
</tr>
<tr>
<td>English</td>
<td>Korean</td>
<td>Thai</td>
</tr>
<tr>
<td>Estonian</td>
<td>Latvian</td>
<td>Turkish</td>
</tr>
<tr>
<td>Finnish</td>
<td>Lithuanian</td>
<td>Ukrainian</td>
</tr>
<tr>
<td>French</td>
<td>Malay</td>
<td>Urdu</td>
</tr>
<tr>
<td>German</td>
<td>Maltese</td>
<td>Vietnamese</td>
</tr>
<tr>
<td>Greek</td>
<td>Norwegian</td>
<td>Welsh</td>
</tr>
<tr>
<td>Haitian Creole</td>
<td>Persian</td>
<td> </td>
</tr>
</tbody>
</table>
<img alt="" style="height: 7px; width: 17px; border-width: 0; left: 20px"></div>
</div>
</div>
</div>
</div>
<div id="CTFLinksPanel"><span id="ExternalLinksPanel"> <img id="HelpImg"><img id="EmbedImg"><img id="ShareImg"> </span></div>
<div id="FloaterProgressBar"> </div>
</div>
<div id="WidgetFloaterCollapsed" style="display: none"><span>TRANSLATE with </span><img id="CollapsedLogoImg"></div>
<div id="FloaterSharePanel" style="display: none">
<div id="ShareTextDiv"><span id="ShareTextSpan"> COPY THE URL BELOW </span></div>
<div id="ShareTextboxDiv"><input id="ShareTextbox" type="text" name="ShareTextbox" readonly="readonly"> <img id="EmailImg"></div>
<div id="ShareFooter"><span id="ShareHelpSpan"> <img id="ShareHelpImg"></span> <span id="ShareBackSpan"> Back</span></div>
<input id="EmailSubject" type="hidden" name="EmailSubject" value="Check out this page in {0} translated from {1}"> <input id="EmailBody" type="hidden" name="EmailBody" value="Translated: {0}%0d%0aOriginal: {1}%0d%0a%0d%0aAutomatic translation powered by Microsoft® Translator%0d%0ahttp://www.bing.com/translator?ref=MSTWidget"> <input id="ShareHelpText" type="hidden" value="This link allows visitors to launch this page and automatically translate it to {0}."></div>
<div id="FloaterEmbed" style="display: none">
<div id="EmbedTextDiv"><span id="EmbedTextSpan">EMBED THE SNIPPET BELOW IN YOUR SITE</span><img id="EmbedHelpImg"></div>
<div id="EmbedTextboxDiv"><input id="EmbedSnippetTextBox" type="text" name="EmbedSnippetTextBox" value="<div id='MicrosoftTranslatorWidget' class='Dark' style='color:white;background-color:#555555'></div><script type='text/javascript'>setTimeout(function(){var s=document.createElement('script');s.type='text/javascript';s.charset='UTF-8';s.src=((location && location.href && location.href.indexOf('https') == 0)?'https://ssl.microsofttranslator.com':'http://www.microsofttranslator.com')+'/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=true&ui=true&settings=manual&from=en';var p=document.getElementsByTagName('head')||document.documentElement;p.insertBefore(s,p.firstChild); },0);</script>" readonly="readonly"></div>
<div id="EmbedNoticeDiv"><span id="EmbedNoticeSpan">Enable collaborative features and customize widget: Bing Webmaster Portal</span></div>
<div id="EmbedFooterDiv"><span id="EmbedBackSpan">Back</span></div>
</div>
</div><br><br>
来源:https://www.cnblogs.com/Johnfx-home/p/15154602.html
頁:
[1]