ubuntu20安装mysql8
ubuntu20 apt 源里的mysql 已经更新到 8.0, 可以直接安装
如果没有,参考 https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html 添加. 如:
对于 ubuntu/debian
wget https://repo.mysql.com//mysql-apt-config_0.8.19-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.19-1_all.deb
对于 centos8
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
安装
sudo apt update # 更新源
sudo apt install mysql-server #安装
centos 只安装 mysql-client
sudo yum install mysql
mysql 服务的状态管理
systemctl status mysql # 查看状态,装完后默认就启动了,默认开机启动
sudo systemctl disable mysql # 关闭开机启动
sudo systemctl disable mysql # 设置开机启动
sudo systemctl start mysql # 启动 mysql 服务
sudo systemctl stop mysql # 关闭 mysql 服务
默认用户
sudo mysql # 使用 root 用户连入 mysql, 默认不需要密码
sudo cat /etc/mysql/debian.cnf # 这里提供了另一个默认账户和密码 debian-sys-maint,密码是明文,只能在本地登录
创建用户并授权,修改密码,删除用户
创建用户并授权(默认使用 caching_sha2_password 加密方式,新引入的)
create user '用户名'@'localhost' identified by '明文密码';
grant all privileges on *.* to '用户名'@'localhost' with grant option;
flush privileges;
修改密码,指定使用 mysql_native_password 加密方式(mysql5.7/5.6使用的方式)
ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '明文密码';
修改密码,指定使用 caching_sha2_password 加密方式(mysql8使用的方式)
alter user 'root'@'localhost' identified WITH caching_sha2_password BY 'root' PASSWORD EXPIRE NEVER;
删除用户
DROP USER '用户名'@'localhost';
是否用户允许在某些ip登录,修改 localhost
允许ip段的写法类似 '192.168.1.%'
这里的授权语句 grant, 如果省去 @'xxx', 会报错:
ERROR 1410 (42000): You are not allowed to create a user with GRANT
写成带 @ 限制ip的形式就好
允许远程连接
mysql默认只能从本地登录,允许从远程登录需要修改绑定地址.
修改配置文件,绑定ip修改为 0.0.0.0
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
重启mysql服务
sudo systemctl restart mysql.service
创建数据库
create database dbname DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
指定这个数据库的默认字符编码 utf8mb4 编码, 和默认排序比较方案. ci: case-insensitive, 大小写不敏感的, cs: case-sensitive, 大小写敏感的
卸载 mysql
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt autoremove mysql* --purge