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 CREATESELECTINSERT ON *.* TO 账号名@localhost;  # 给账号赋予创建、查询、插入权限。*.*指的是所有数据库和表, 如果想指定某个数库表,则 da.table_name 指定da库table_name表。

  撤权语法:REVOKE  CREATESELECTINSERT 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;       #刷新

posted @ 2023-02-19 00:55  博无止境  阅读(61)  评论(0编辑  收藏  举报