linux环境离线安装Mysql8.0

一、卸载mariadb

如果Linux中安装了mariadb数据库,先卸载掉,因为CentOS 7 内部集成了mariadb,mariadb数据库是mysql的分支,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb

检查Linux是否安装了mariadb数据库

yum list installed | grep mariadb

无结果,说明未安装,否则需要全部卸载

全部卸载

yum -y remove mariadb*

检查mariadb是否全部卸载

yum list installed | grep mariadb

无结果,说明已经全部卸载

二、 删除之前安装的mysql

查找以前是否装有mysql

rpm -qa|grep -i mysql

无结果,说明未安装mysql或已经卸载彻底,接下来直接安装mysql即可,否则需要删除之前安装的mysql

查找之前安装的mysql的目录、并且删除mysql的文件和库

查找mysql的目录

find / -name mysql

删除对应的mysql目录

rm -rf 查找到的mysql的目录

卸载后/etc/my.cnf不会删除,需要进行手工删除

rm -rf /etc/my.cnf

三.安装Mysql

切换至usr/local目录一般用来安装软件

下载并上传压缩包去官网下载即可这里我用的是8.0.29版本

解压压缩包

tar xvf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz

重命名解压出来的文件夹,移动到目标目录,这里改成mysql

mv ./mysql-8.0.29-linux-glibc2.12-x86_64 /usr/local/mysql

/usr/local/mysql文件夹下创建data文件夹 存储文件

cd /usr/local/mysql

mkdir data

分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)

groupadd mysql

useradd -g mysql mysql

授权刚刚新建的用户

chown -R mysql.mysql /usr/local/mysql

chmod 750 /usr/local/mysql/data -R

配置环境,编辑/etc/profile文件

vi /etc/profile

加入环境变量

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

执行命令是配置生效

source /etc/profile

编辑my.cnf文件

vi /etc/my.cnf

添加信息

[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
 
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
 
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

切换到/usr/local/mysql/bin目录下

cd bin

初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/bin目录下执行)

./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize

临时密码每次生成的都不一样

如果出现错误

删除指定文件夹下数据即可-可以先备份

复制 mysql.server 文件,在/usr/local/mysql目录下执行

cp ./support-files/mysql.server /etc/init.d/mysql

cp ./support-files/mysql.server /etc/init.d/mysqld

赋予权限

chown 777 /etc/my.cnf

chmod +x /etc/init.d/mysql

chmod +x /etc/init.d/mysqld

检查一下/var/lib/mysql是否存在,否则进行创建

mkdir /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql/

启动数据库,有SUCCESS字眼说明MySQL安装完成

service mysql start

登录mysql

mysql -uroot -p(上面生成的密码)

如果报错,可能会缺少依赖,

安装:yum install libncurses.so.5

四.登录成功后修改密码,并设置远程连接

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

使密码生效

flush privileges;

选择数据库

use mysql;

再修改远程连接并生效

update user set host='%' where user='root';

执行提交命令,搞定!

flush privileges;

最后就可以使用root账号去登录mysql了

五.创建只读账号根据自身需求

登录数据库

mysql -u root -p 输入密码登录mysql

选择进入mysql库下

use mysql

创建用户

create user 'read_only_user'@'%' identified by 'admin123456!';

刷新权限

flush privileges;

赋予权限只读

GRANT SELECT ON *.* TO 'read_only_user'@'%' WITH GRANT OPTION;

查看用户权限

select * from user where User='read_only_user' \G;

你可能感兴趣的:(linux,mysql,linux,数据库)