有一段时间没有更新,最近小编在写一个自己的项目,准备部署在自己的服务器上,刚好今天完成了一部分,可以用作展示了,所以准备部署,然后发现没有我的服务器上没有安装MySQL。这篇就先介绍安装MySQL数据库
离线安装:数据库在官网下载(下载地址),这里选择适合自己的系统和版本,我一般喜欢用最新版本的
选择合适版本,获取下载链接,
在服务器中通过wget下载
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-server_8.0.19-1ubuntu19.10_amd64.deb-bundle.tar
通过tar指令解压
tar -xvf mysql-server_8.0.19-1ubuntu19.10_amd64.deb-bundle.tar
在通过apt指令进行安装
抱歉,离线安装失败,这个问题先放这儿了,后面有时间在研究这个
在线安装:离线安装失败了,这里只能通过在线安装咯
首先默认是电脑没有安装过MySQL的,如果安装了请自行卸载,通过指令下载安装
sudo apt-get install -y mysql-server mysql-client
这里选择y“”,系统开始去安装了,慢慢等待
这里提供一个官方的安装文档(地址)
等待安装结束后,mysql就安装完成了,来测试 一哈
在终端输入
mysql -u root -p
在提示输入密码时可以直接回车,然后就登录成功了,开始进行下一步操作
mysql的用户操作都是在mysql数据库的user表中,所以这里通过更改user表中的数据来更改用户的数据,依次执行以下代码
#展示所有的数据库
show databases;
#使用数据库
use mysql;
#查询user表的数据
select * from user;
首先更改默认密码,依次输入以下指令,注意,必须要刷新权限,否则更改了也不能用
#更改密码
update user set password=password('这里是你的密码') where user='root';
#刷新权限
flush privileges;
注意:必须要刷新权限,否则更改了也不能用;密码前必须加password,否则会明文显示并且也不能用
完成后,root账户的密码就更改了,现在就只能通过正确的密码登录mysql了
然后建立一个自己用的账户,不然用root账户去操作始终是不太安全的,所以这里我先建立一个自己用的账户
创建用户
create user 'user'@'host' identified by 'password';
user:创建的用户名
host:用户登录权限,如果只在本机登录,选择“localhost”,如果想在任意计算机登录,选择“%”
password:登录密码
比如:我现在需要创建一个test账户,能在任意地方登录
create user 'test'@'%' identified by 'test';
给用户授权
grant privileges on database.table to 'user'@'host'
privileges:权限,全部权限选择“all”,想指定权限就选择要指定的权限,如select,insert,update,
database:数据库名字
table:表名;如果用户想获得所有数据库表的权限选择“ . ”,第一个是数据库,第二个是表
比如:给用户所有的权限
grant all on *.* to 'test'@'%';
更改密码
set password for 'user'@'host' = password('newpassword');
取消授权
revoke privileges on database.table from 'user'@'host'
删除用户
drop user 'username'@'host';
完成后就可以愉快的使用数据库了
注:以上安装完成后默认是是安装的MariaDB数据库,它是MySQL的分支,指令和可执行sql文件都是可以通用的
MariaDB和MySQL还是有一点区别的,所以现在我将MariaDB卸载重新安装MySQL
卸载指令
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
卸载完好后,开始安装MySQL
下载通用版本的MySQL,然后放到linux中
弄了很久也没弄好,推荐一个文章,可以按照这个来安装
https://blog.csdn.net/qq_41813208/article/details/102828922?depth_1.utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task