Windows 10 和 Ubuntu18.04 下安装 MySQL8.0
Windows10
下载安装包
首先去官网下载安装包,https://dev.mysql.com/downloads/mysql/
解压到安装目录,如F:mysql-8.0.20-winx64\
注意: 路径上不要有中文和空格
配置MySQL
在F:mysql-8.0.20-winx64\bin
目录创建my.ini
写入
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=F:\mysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\mysql-8.0.20-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
添加环境变量,在path 添加F:mysql-8.0.20-winx64\bin
安装
以管理员身份打开cmd到安装目录
初始化
mysqld --initialize --user=mysql --console
完成之后会生成临时密码,记住它
随后进行安装
mysqld -install
启动MySQL
net start mysql
登录报错 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
# 使用管理员权限打开cmd,关闭mysql服务
net stop mysql
# 进入bin目录,执行
mysqld --console --skip-grant-tables --shared-memory
# 启动新的cmd窗口,登录mysql,不要输密码,直接enter
mysql -u root -p
# 修改密码
use mysql
update user set authentication_string='' where user='root'
flush privileges
ALTER user 'root'@'localhost' IDENTIFIED BY '1234'
修改密码
此时用数据库连接工具使用临时密码连接MySQL会报
1862 - Your Password has expired.To log you must change it using a client that supports expired password
这里是说密码已过期,之前的临时密码只能在命令行里使用
所以我们需要修改root密码
依旧是管理员cmd,登录MySQL:
mysql -u root -p
然后输入临时密码
using mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
修改完成之后就可以使用自己的密码登陆了,至此Windows下安装MySQL完成
Ubuntu 下安装MySQL
安装MySQL
sudo apt-get install mysql-server
sudo apt-get install mysql-client
我安装时并没有配置密码,还需要修改默认密码
修改默认密码
修改密码
mysql -u root -p
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
下面这种已失效,mysql8高版本修改了密码验证方式:
sudo vi /etc/mysql/debian.cnf
!img
使用里面的默认用户和密码登录MySQL
mysql -u debian-sys-maint -p
use mysql;
update mysql.user set authentication_string=password('你的密码') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
Ubuntu安装MySQL完成
完全卸载mysql
删除mysql的数据文件
sudo rm /var/lib/mysql/ -R
删除mysql的配置文件
sudo rm /etc/mysql/ -R
自动卸载mysql(包括server和client)
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
使用docker并持久化数据
将mysql在docker容器中进行部署,然后使用数据卷挂载的方式将mysql的数据持久化到宿主机 拉取mysql的镜像(默认最新)
docker pull mysql
启动容器
docker run --name mysql -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
--name mysql # 对容器的命名
-d #后台运行
-p 3306:3306 #对外暴露端口号3306
-v /home/mysql/conf:/etc/mysql/conf.d #配置文件挂载到当前宿主机的/home/mysql/conf
-v /home/mysql/data:/var/lib/mysql #数据挂载到当前宿主机的 /home/mysql/data
-e MYSQL_ROOT_PASSWORD=123456 #设置mysql的root用户的密码是:123456