linux018之安装mysql
linux上安装mysql:
第一步:卸载mariadb,mariadb是mysql数据库的分支,mariadb和mysql一起安装会有冲突,所以需要卸载掉。
yum list installed | grep mariadb :查看是否安装mariadb, 像我这里是没有的,如果有的话需要卸载
yum -y remove 包名 : 卸载mariadb, -y的意思是无需手动确认。如果卸载不成功去掉 -y 手动确认卸载一下。
第二步:卸载原来的mysql(如果原来的mysql没有按照这一步省略)
rpm -qa | grep mysql :查看是否安装过mysql
rpm -qa | grep -i mysql | xargs -n1 rpm -e --nodeps :卸载掉所有有关mysql的软件包。卸载完成后再查看一下, 如下图说明卸载干净了。
第三步:安装mysql。这里提供两种安装方法,一种是自己到网上去下载mysql安装包,另一种是通过yum命令自动在linux上下载mysql安装包。
yum命令安装请看该篇文章:https://www.cnblogs.com/FBGG/p/15577855.html
手动下载mysql,官网地址:https://downloads.mysql.com/archives/community/
下载完成后上传到 /opt 目录下
然后解压到 /opt 目录下,我这里下载成了.xz文件, 需使用命令: tar -xvf 包名 -C /opt (一般情况下都是用 -zxvf, 因为我的是.xz格式, 所以得用-xvf)
解压完成后,删除掉之前的软件包,因为占用空间太大了,命令:rm -rf 目录名
然后将解压后的mysql 目录重名一下,因为名字太长了,命令:mv 旧目录 新目录
再mysql安装目录下创建一个data目录, 这个目录是用来存放数据的, mysql没有自动创建,需要手动创建。
首先进入mysql安装目录, 命令:mkdir 目录名
创建mysql超级用户:
首先创建一个组,命令:groupadd mysql 。我这里之前已经创建过了,所以报错,因为之前卸载mysql的时候,没有删除mysql的组名
创建mysql超级用户,命令:useradd -g mysql mysql 。解释:第一个mysql是组名, 第二个mysql是用户名。因为我这里已经创建了,就不演示了。
初始化mysql:
使用 mysql 的 mysqld 命令初始化数据库基本信息。切换到 mysql-8.0.31-x86_64 的bin目录下
命令: ./mysqld --initialize --user=mysql --datadir=/opt/mysql-8.0.31-x86_64/data --basedir=/opt/mysql-8.0.31-x86_64
参数说明,告诉系统:
--initialize:初始化mysql,创建mysql的 root 用户,随机生成密码。记住密码、登录mysql使用
--user:执行mysqld命令的linux用户名
--datadir:mysql数据文件的存放目录,目录位置参照本机的设置。
--basedir:mysql安装程序的目录,目录位置参照本机的设置。
如下图说明初始化成功,第一次初始化mysql会自动帮你创建root账号和密码,密码需要记下来,方便后续登录操作mysql
修改root密码:
修改配置文件,命令:vim /etc/my.cnf (注意:有时候是my.cnf.rpmsave)
在配置文件下添加:skip-grant-tables
修改完配置之后输入重启服务命令, 使配置生效,命令:service mysql restart
修改密码:
首先登录mysql,在 /opt/mysql-8.0.31-x86_64 的bin 目录下执行命令:./mysql -u root -p
重置密码,执行命令:ALTER USER USER() IDENTIFIED BY '123456'; 我这里将密码修改成123456,注意加上冒号
开启允许外部访问:
use mysql; 选择mysql数据库,注意加上冒号
update user set host = '%' where user = 'root'; #使root用户能在任何host都能访问
FLUSH PRIVILEGES; #刷新
退出 mysql 服务界面,命令:quit
把/etc/my.cnf免密删掉。(这里不再讲解,就把刚刚上面那行数字删掉即可)
启用安全加密功能:
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份证验证机制,mysql 命令程序 mysql_ssl_rsa_setup 提供了开启数据加密功能,生成数据证书(如何加密不用管,启用加密功能就行)。
在mysql-8.0.31-x86_64 的bin目录下执行命令:./mysql_ssl_rsa_setup --datadir=/opt/mysql-8.0.31-x86_64/data
修改 mysql 安装目录权限:
mysql安装后, 需要更改mysql-8.0.31-x86_64整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。
在mysql安装目录的上级(/opt)位置,执行命令:chown -R mysql:mysql /opt/mysql-8.0.31-x86_64/
进一步授权,开放所有权限(其实这一步不执行也可以)
启动mysql服务:
在 /opt/mysql-8.0.31-x86_64 的 bin 目录下执行命令:./mysqld_safe & (&符号代表的是后台启动,如果没有&则光标无法退出),输入命令后提示语出现后,按回车键启动服务
查看mysql进程启动没有,命令:ps -ef | grep mysql
关闭mysql服务:
在 /opt/mysql-8.0.31-x86_64 的 bin 目录下执行命令:./mysqladmin -uroot -p shutdown 输入密码关闭
完成上面这些步骤, 就可以使用工具连接数据库了,要记得启动mysql和关闭防火墙,否则有可能无法连接。
创建mysql账号(以下语法需要root账号执行):
创建:create user 账号@localhost identified by '账号密码';
删除:DROP USER '账号'@'localhost';
查看:select user,host from mysql.user;
授权:
1、首先要登录linux,进入mysql安装目录的bin目录执行:./mysql -u 账号 -p
2、命令语法解释:
ALL PRIVILEGES:新帐户拥有所有特权。
CREATE:帐户能够创建数据库和表。
DROP:帐户能够删除数据库和表。
DELETE:帐户能够从特定表中删除行。
INSERT:帐户能够将行插入到特定表中。
SELECT:帐户能够读取数据库。
UPDATE:帐户能够更新表行。
授权语法:GRANT CREATE, SELECT, INSERT ON *.* TO 账号名@localhost; # 给账号赋予创建、查询、插入权限。*.*指的是所有数据库和表, 如果想指定某个数库表,则 da.table_name 指定da库table_name表。
撤权语法:REVOKE CREATE, SELECT, INSERT ON *.* TO 账号名@localhost; # 撤销创建、查询、插入权限。*.*指的是所有数据库和表, 如果想指定某个数库表,则 da.table_name 指定da库table_name表。
修改用户名:RENAME USER 'user1' @'localhost' TO 'user2' @'localhost'; # 把user1修改为user2
修改密码:
如果mysql版本是5.7以前的,需要使用:SET PASSWORD FOR 'user2' @'localhost' = PASSWORD('666666');
如果是5.7往后的,需要使用:ALTER USER 'user2' @'localhost' IDENTIFIED BY '666666';
允许账号外部访问(如果没有这一步则无法连接Navicat工具):
use mysql; 先切换数据库
update user set host = '%' where user = '账号'; #账号能在任何host都能访问
FLUSH PRIVILEGES; #刷新