Ubuntu 18.04 安裝 mysql 的過程當中,居然沒有讓你輸入祕密?!(以前在 Ubuntu 14.04 下,安裝過程當中會詢問密碼),這致使安裝完 mysql 初始祕密不知道的問題。python
$ sudo apt-get install mysql-server-5.7
解決方法以下:mysql
1)安裝完成後,會生成文件 /etc/mysql/debian.cnf ,初始用戶名和祕密以下 (這裏密碼是隨機的)sql
$ sudo cat /etc/mysql/debian.cnf # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = 63vIY3PtyKh10cmZ socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = 63vIY3PtyKh10cmZ socket = /var/run/mysqld/mysqld.sock
2)使用這個用戶名和祕密登錄 mysql數據庫
$ mysql -h 127.0.0.1 -u debian-sys-maint -p 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>
3)而後作以下操做(這裏設置祕密爲 1,讀者請自行設置本身的密碼)ubuntu
mysql> update mysql.user set authentication_string=password('1') where user='root' and host='localhost'; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> update user set plugin='mysql_native_password'; Query OK, 1 row affected (0.00 sec) Rows matched: 4 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit; Bye
4)從新啓動 mysqlsocket
$ sudo service mysql restart
5)以後就可使用 root 登錄了ui
$ mysql -h 127.0.0.1 -u root -p 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>
6)檢查默認字符編碼編碼
mysql> show variables like 'character_set_%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
將其改成 utf8,打開 /etc/mysql/mysql.conf.d/mysqld.cnf,在最後添加一句,spa
character-set-server=utf8
從新啓動 mysql,.net
$ sudo service mysql restart
再次查看字符編碼,
mysql> 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)
7)使用 mycli 自動補全
默認 mysql 命令行登錄後,輸入命令不會提示及自動補全,很是麻煩,經過使用 mycli 自動補全會方便不少。
安裝以下,
$ sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ mycli
使用 mycli 啓動數據庫鏈接,
$ mycli -h 127.0.0.1 -u root -p ******** ( here your DB password)
8) 安裝 mysql 的 python 藉口 mysqlclient (Django 對此接口的支持比 mysql-connector-python 好)
$ sudo apt-get install default-libmysqlclient-dev $ sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ mysqlclient