mysql5.7的安装
大约 5 分钟
mysql的安装
查看当前有没有安装MySQL
执行以下命令,如果执行后什么都没有返回,则进入MySQL的安装步骤
dpkg -l | grep mysql
如果执行以上命令,显示如下,就证明MySQL已经安装完毕,直接使用MySQL即可

安装MySQL
Ubuntu18.04下安装MySQL5.7
Ubuntu18.04下安装MySQL,默认安装的事MySQL5.7
#更新软件列表
$ sudo apt update
#安装MySQL
$ sudo apt install mysql-server mysql-client
Ubuntu20.04下安装MySQL5.7
Ubuntu18.04下安装MySQL,默认安装的事MySQL8.0
下载安装包(这里以5.7.37为例)
MySQL :: Download MySQL Community Server (Archived Versions)
选择Ubuntu Linux 18.04 (x86, 64-bit), DEB Bundle
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar
解压安装包
对于路径多多使用tab键
tar -xvf mysql-server_5.7.32-1ubuntu18.04_amd64.deb-bundle.tar
安装MySQL5.7.32
# 更新依赖源
sudo apt-get update
sudo apt-get upgrade
# 安装libaio1、libtinfo5依赖
sudo apt-get install libaio1
sudo apt-get install libtinfo5
# 依次安装
sudo dpkg -i mysql-common_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg-preconfigure mysql-community-server_5.7.32-1ubuntu18.04_amd64.deb #此步需要输入数据的root密码
sudo dpkg -i libmysqlclient20_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqld-dev_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-client_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-common_5.7.32-1ubuntu18.04_amd64.deb
# 继续安装依赖
sudo apt-get -f install
sudo apt-get -f install libmecab2
# 安装mysql-server
sudo dpkg -i mysql-community-server_5.7.32-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_5.7.32-1ubuntu18.04_amd64.deb
# 检测安装
mysql -u root -p
安装完成之后,输入下面命令进行查看
netstat -tap | grep mysql
通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功
使用c/c++操作mysql数据库之前需要安装MySQL库
#安装MySQL客户端依赖包,后面进行编程时候需要使用
$ sudo apt install libmysqlclient-dev
mysql头文件在/usr/include/mysql/
目录下
#include <mysql/mysql.h>
配置MySQL
初始化配置
sudo mysql_secure_installation

检查MySQL的服务状态,输入如下命令
$ systemctl status mysql.service
#或者使用如下命令(两者都可以查看当前MySQL的状态)
$ sudo service mysql status

登录MySQL
mysql -u root -p
ubuntu18.04安装MySQL异常问题
卸载MySQL
如果在安装MySQL过程中安装多次都失败了,可以选择先清除MySQL,方法步骤如下。
- 首先在系统终端中查看MySQL的依赖项,运行命令
dpkg --list|grep mysql
- 卸载命令
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-5.7
# 清除残留数据,运行命令
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
- 再次查看MySQL的剩余依赖项,运行命令
dpkg --list|grep mysql
# 继续删除剩余依赖项,如:
sudo apt-get autoremove --purge mysql-apt-config
# 继续运行步骤1中的命令
dpkg --list|grep mysql
#直到执行该命令后什么都没有显示。
安装MySQL中常见问题
密码设置问题ERROR 1819 (HY000): Your password does not satisfy the current policy
requirements
密码设置一直不符合要求,其实就是密码设置简单了,稍微设置复杂点即可,或者修改密码设置等级与 长度。 可能出现的就是这个报错
ERROR 1819 (HY000): Your password does not satisfy the current policy
requirements
可以在mysql中进行如下修改:
mysql> #这个标志表示已经成功进入mysql命令行界面
#然后在mysql命令行输入命令(以分号结尾)
mysql> use mysql;
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.08 sec)
mysql>
#然后设置密码策略为简单
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql>
#设置密码长度为4
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql>
#然后在继续查看密码相关信息
mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
mysql>
#接着输入如下命令(以分号结尾),有四个命令,相应的'你的命名'换成自己想设计的密码,
mysql> update mysql.user set authentication_string=password('你的密码,四位')
where user='root' and Host ='localhost';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;
使用远程登录的配置修改
进入配置文件修改相应配置,命令如下:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind-address = 127.0.0.1,
保存退出,然后进入mysql数据库,
mysql -u root -p
# 执行授权命令
#你的密码需要自己设置,不要直接复制
mysql> grant all on *.* to root@'%' identified by '你的密码' with grant
option;
# 刷新权限
mysql> flush privileges;
#然后执行exit命令退出mysql服务
mysql> exit;
再执行如下命令重启mysql
systemctl restart mysql
MySQL常用命令
#查看MySQL的状态
$ sudo service mysql status
#MySQL的启动
$ sudo service mysql start
#MySQL的停止
$sudo service mysql stop
show global variables like 'port'; #查看mysql端口号
设置MySQL的自动补全功能
$ cd /etc/mysql/mysql.conf.d/
$ sudo vim mysqld.cnf
在下面加入一行auto-rehash
,显示如下:

然后保存退出
当你在vim中编辑了一个文件,并想以超级用户权限保存它时,你可以使用
:w!sudo tee %
命令。这实际上会执行以下步骤:
- 首先,
w!
会尝试保存当前文件,即使它是只读的或你没有写入权限。- 然后,
sudo tee %
会以超级用户权限将vim编辑器中的内容写入到当前编辑的文件中。
然后必须要重启MySQL,命令如下
sudo service mysql start
这样在MySQL中就可以进行自动联想功能(类似Linux下的命令行一样,也是Tab键。注意:只能联想表和列的名字,并没有Linux下面的功能强大)。
在重启MySQL时候如果出现打不开,可以查看日志
查看系统日志
vim /var/log/syslog
#在里面搜索关键字mysql、erro
查看MySQL自己的日志
vim /var/log/mysql/error.log