如果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
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
切换至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;