前置条件:
把apt包更新到最新(如果更新过就跳过这步)
先检查
sudo apt update
后更新
sudo apt upgrade
(期间要选择确认,输入 y 即可)
如果不行可以:sudo apt upgrade --fix-missing
如果先前安装过mysql,想要重新安装,可使用如下命令完全卸载清理mysql。
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
dpkg --list|grep mysql
下载MySQL APT安装配置包。
首先访问 https://dev.mysql.com/downloads/repo/apt/ 获取配置包下载地址
可以直接下载,也可以右键复制地址:
https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
新建一个下载目录并给权限
sudo mkdir -p /opt/mysql
sudo chmod 755 -R /opt/mysql
进入该目录
cd /opt/mysql
下载并安装MySQL官方的APT配置包
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
如果有-bash: wget: command not found错误请执行以下命令
sudo apt install wget
下完后给个权限:
sudo chmod 755 -R /opt/mysql
给权限后就可以直接安装了。
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
回车确定
安装过程中出现选择项,通过上下键选择OK继续安装即可。
更新APT软件源:
sudo apt-get update
安装MySQL Server
sudo apt-get install mysql-server
然后是对MySQL的一些设置。
MySQL 8安装好之后,会创建如下目录
数据库目录:/var/lib/mysql/。
配置文件:/usr/share/mysql-8.0(命令及配置文件),/etc/mysql(如my.cnf)。
相关命令:/usr/bin(mysqladmin、mysqldump等命令)和/usr/sbin。
启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)。
服务器启动后端口查询
sudo netstat -anp | grep mysql
查看服务状态
sudo service mysql status
停止服务
sudo service mysql stop
启动服务
sudo service mysql start
重启服务
sudo service mysql restart
此时MySQL已经开始正常运行,不过要想进入MySQL还得先设置此时root用户的密码
1:进入mysql命令行
sudo mysql
2: 切换使用数据库为user
use mysql
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xsh@12345';
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
原因是因为MySQL有密码设置的规范(length>8位,有大小写字母和特殊字符)
#加外网访问的用户
create user root@'%' identified WITH mysql_native_password by 'Xsh@12345';
grant all privileges on *.* to root@'%';
#刷新权限
flush privileges ;
可以运行以下sql语句检查
select host,user,user password,plugin,authentication_string from mysql.user;
SELECT VERSION();
SELECT NOW();
正确后退出
quit
vi 打开 /etc/mysql/mysql.conf.d/mysqld.cnf ,把下面2个key可以改0.0.0.0。
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
vi打开 /etc/mysql 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件)(vi 请先自学下基本用法):
sudo vi /etc/mysql/my.cnf
在 [mysqld] 前添加如下代码:
如果没有[mysqld]可以先自己加。
[client]
default-character-set=utf8
在 [mysqld] 后添加如下代码:
character-set-server=utf8
default-storage-engine=InnoDB
#开防火墙端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
#防火墙重新加载
sudo firewall-cmd --reload
#看开放的防火墙端口
sudo firewall-cmd --zone=public --list-ports
最后重启系统。