祈竹 發表於 2019-5-5 21:45:00

Ubuntu 18.04 安装配置 MySQL 5.7

<p>Ubuntu 18.04 安装 mysql 的过程中,竟然没有让你输入秘密?!(之前在 Ubuntu 14.04 下,安装过程中会询问密码),这导致安装完 mysql 初始秘密不知道的问题。</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt-get <span style="color: rgba(0, 0, 255, 1)">install</span> mysql-server-<span style="color: rgba(128, 0, 128, 1)">5.7</span></pre>
</div>
<p>解决方法如下:</p>
<p>1)安装完成后,会生成文件 /etc/mysql/debian.cnf ,初始用户名和秘密如下 (这里密码是随机的)</p>
<div class="cnblogs_code">
<pre>$ sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!

host   = localhost
user   = debian-sys-maint
password = 63vIY3PtyKh10cmZ
socket   = /var/run/mysqld/mysqld.sock

host   = localhost
user   = <span style="background-color: rgba(255, 255, 0, 1)">debian-sys-maint</span>
password = <span style="background-color: rgba(255, 255, 0, 1)">63vIY3PtyKh10cmZ</span>
socket   = /var/run/mysqld/mysqld.sock</pre>
</div>
<p>2)使用这个用户名和秘密登陆 mysql</p>
<div class="cnblogs_code">
<pre>$ <strong>mysql -h localhost -u debian-sys-maint -p</strong>
Enter password:
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; </pre>
</div>
<p>3)然后做如下操作(这里设置秘密为 1,读者请自行设置自己的密码)</p>
<div class="cnblogs_code">
<pre><span style="background-color: rgba(255, 255, 0, 1)"># For mysql 5.7</span><br>mysql&gt; <strong>update mysql.user set authentication_string=password('1') where user='root' and host='localhost';</strong>
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1Changed: 1Warnings: 1

mysql&gt; <strong>update mysql.user set plugin='mysql_native_password';</strong>
Query OK, 1 row affected (0.00 sec)
Rows matched: 4Changed: 1Warnings: 0

mysql&gt; <strong>flush privileges;</strong>
Query OK, 0 rows affected (0.00 sec)

mysql&gt; <strong>quit;</strong>
Bye<br><br><span style="background-color: rgba(255, 255, 0, 1)"># For mysql 8.0</span><br>mysql&gt; <strong>update mysql.user set authentication_string='' where user='root' and host='localhost';</strong><br>Query OK, 0 rows affected (0.00 sec)<br>Rows matched: 1&nbsp; Changed: 0&nbsp; Warnings: 0<br><br>mysql&gt; <strong>alter user 'root'@'localhost' identified with mysql_native_password by '1';    # (old)<br><br></strong>mysql&gt; <strong>alter user 'root'@'localhost' identified with </strong><span style="background-color: rgba(255, 255, 0, 1)"><strong>caching_sha2_password </strong></span><strong>by '1';    # (new)</strong></pre>
<pre>Query OK, 0 rows affected (0.13 sec)<br><br>mysql&gt; <strong>select user, authentication_string from mysql.user;</strong><br>+------------------+------------------------------------------------------------------------+<br>| user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | authentication_string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>+------------------+------------------------------------------------------------------------+<br>| debian-sys-maint | $A$005$e_2cye'a.&gt;9=3=?ya/BZhalDCOWADFMnjOfE2gaSMhtM1DbJzQYI/PduJ4 |<br>| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |<br>| mysql.session&nbsp;&nbsp;&nbsp; | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |<br>| mysql.sys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |<br>| <strong>root</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | <strong>*E6CC90B878B948C35E92B003C792C46C58C4AF40&nbsp;&nbsp;</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>+------------------+------------------------------------------------------------------------+<br>5 rows in set (0.00 sec)<br><br>mysql&gt; <strong>flush privileges;</strong><br>Query OK, 0 rows affected (0.26 sec)<br><br>mysql&gt; <strong>exit</strong><br>Bye<br><br></pre>
</div>
<p>4)重新启动 mysql</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> service mysql restart</pre>
</div>
<p>5)之后就可以使用 root 登陆了</p>
<div class="cnblogs_code">
<pre>$ <strong>mysql -h localhost -u root -p</strong>
Enter password:
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; </pre>
</div>
<p>6)检查默认字符编码 (<span style="background-color: rgba(255, 255, 0, 1)"><strong>mysql 8.0 not need this</strong></span>)</p>
<div class="cnblogs_code">
<pre>mysql&gt; <strong>show variables like 'character_set_%';</strong>
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client   | utf8                     |
| character_set_connection | utf8                     |
| <span style="background-color: rgba(255, 255, 0, 1)">character_set_database</span>   | <span style="background-color: rgba(255, 255, 0, 1)">latin1</span>                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                     |
| <span style="background-color: rgba(255, 255, 0, 1)">character_set_server</span>   | <span style="background-color: rgba(255, 255, 0, 1)">latin1</span>                     |
| character_set_system   | utf8                     |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)</pre>
</div>
<p>  将其改为 utf8,打开 /etc/mysql/mysql.conf.d/mysqld.cnf,在最后添加一句,</p>
<div class="cnblogs_code">
<pre><strong>character-set-server=utf8</strong></pre>
</div>
<p>  重新启动 mysql,</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> service mysql restart</pre>
</div>
<p>  再次查看字符编码,</p>
<div class="cnblogs_code">
<pre>mysql&gt; show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client   | utf8                     |
| character_set_connection | utf8                     |
| character_set_database   | utf8                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                     |
| character_set_server   | utf8                     |
| character_set_system   | utf8                     |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)</pre>
</div>
<p>&nbsp;</p>
<p>7)使用 mycli 自动补全 (only support python3)</p>
<p>&nbsp;默认 mysql 命令行登陆后,输入命令不会提示及自动补全,非常麻烦,通过使用 mycli 自动补全会方便很多。</p>
<p>具体可参考:https://pypi.org/project/mycli/</p>
<div class="cnblogs_code">
<pre>$ sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ mycli</pre>
</div>
<p>使用 mycli 启动数据库连接,</p>
<div class="cnblogs_code">
<pre>$ <strong>mycli -h localhost -u root -p ********</strong> ( here your DB password)</pre>
</div>
<p>&nbsp;或者,</p>
<div class="cnblogs_code">
<pre>$ <strong>mycli -h <span style="color: rgba(0, 0, 0, 1)">localhost</span> -u root</strong>   <span style="color: rgba(51, 153, 102, 1)"># 回车,输入密码</span></pre>
</div>
<p>试一试,</p>
<div class="cnblogs_code">
<pre>MySQL root@(none):(none)<span style="color: rgba(128, 128, 128, 1)">&gt;</span> show global variables <span style="color: rgba(128, 128, 128, 1)">like</span> <span style="color: rgba(255, 0, 0, 1)">'</span><span style="color: rgba(255, 0, 0, 1)">port</span><span style="color: rgba(255, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 128, 128, 1)">--</span><span style="color: rgba(0, 128, 128, 1)">-------------+-------+</span>
<span style="color: rgba(128, 128, 128, 1)">|</span> Variable_name <span style="color: rgba(128, 128, 128, 1)">|</span> Value <span style="color: rgba(128, 128, 128, 1)">|</span>
<span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 128, 128, 1)">--</span><span style="color: rgba(0, 128, 128, 1)">-------------+-------+</span>
<span style="color: rgba(128, 128, 128, 1)">|</span> port          <span style="color: rgba(128, 128, 128, 1)">|</span> <span style="color: rgba(128, 0, 0, 1); font-weight: bold">3306</span><span style="color: rgba(128, 128, 128, 1)">|</span>
<span style="color: rgba(128, 128, 128, 1)">+</span><span style="color: rgba(0, 128, 128, 1)">--</span><span style="color: rgba(0, 128, 128, 1)">-------------+-------+</span></pre>
</div>
<p>&nbsp;</p>
<p>8)&nbsp; 安装 mysql 的 python 接口 mysqlclient (Django 对此接口的支持比 mysql-connector-python 好)</p>
<p>具体可参考:https://pypi.org/project/mysqlclient/</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt-get <span style="color: rgba(0, 0, 255, 1)">install</span> default-libmysqlclient-<span style="color: rgba(0, 0, 0, 1)">dev   <span style="background-color: rgba(255, 255, 0, 1)"># (ubuntu 16.04 软件包名为 libmysqlclient-dev)</span>
$ </span><span style="color: rgba(0, 0, 255, 1)">sudo</span> pip3 <span style="color: rgba(0, 0, 255, 1)">install</span> -i https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pypi.tuna.tsinghua.edu.cn/simple/ mysqlclient</span></pre>
</div>
<p>&nbsp;</p>
<p>CentOS 7 下的安装方法:https://www.cnblogs.com/gaowengang/p/10744746.html</p>
<p>本文参考网友博客:https://blog.csdn.net/qq_38737992/article/details/81090373</p>
<p>&nbsp;</p>
<p>9) 可以试一下 mysql workbench 图形化管理界面</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt-get <span style="color: rgba(0, 0, 255, 1)">install</span> mysql-workbench</pre>
</div>
<p>&nbsp;</p>
<p>(完)</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/gaowengang/p/10816537.html
頁: [1]
查看完整版本: Ubuntu 18.04 安装配置 MySQL 5.7