WSL Ubuntu 中安装 MySQL 5.7
<pre><code>sudo apt install mysql-server-5.7
sudo mysqld</code></pre>
<p>启动失败</p>
<pre><code>2018-08-15T01:08:41.167354Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-08-15T01:08:41.167378Z 0 [ERROR] Unable to setup unix socket lock file.</code></pre>
<p>修改启动方式</p>
<pre><code>sudo service mysql start</code></pre>
<p>之后问题解决,但是没有默认密码。设置 root 账号密码</p>
<pre><code>sudo mysql_secure_installation</code></pre>
<p>设置默认密码之后,依然无法访问。</p>
<pre><code>$ mysql -uroot -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'</code></pre>
<p>需要 sudo</p>
<pre><code>sudo mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu)</code></pre>
<p>新建一个不需要 sudo 登陆的账号</p>
<pre><code>mysql> create user 'xylw'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to 'xylw'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)</code></pre>
<p>使用这个账号就能直接登录了</p>
<pre><code>mysql -uxylw -p</code></pre>
<p>设置密码的时候报错<code>ERROR 1819 (HY000): Your password does not satisfy the current policy requirements</code></p>
<pre><code>mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM|
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.01 sec)</code></pre>
<p>把<code>validate_password_policy</code>设置成<code>LOW</code>,并修改密码长度限制</p>
<pre><code>set global validate_password_policy=LOW;
set global validate_password_length=4;</code></pre>