前置处理
查看系统是否安装了Mariadb,如果有则需要卸载
rpm -qa | grep mariadb
显示,有
mariadb-libs-5.5.56-2.el7.x86_64
卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
删除etc目录下的my.cnf (前面卸载时可能已经删除)
rm /etc/my.cnf
开始安装mysql
解压文件:
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz,解压至/usr/local/mysql
创建用户组和用户:
sudo groupadd mysql
sudo useradd -r -g mysql mysql
这里使用sudo命令是确保以root权限执行此命令,如果你登入本机的用户是root用户,则直接的使用groupadd和useradd命令。
题外话:对应删除用户组及用户的命令是groupdel和userdel。
进入mysql目录,修改mysql目录的拥有者,为mysql用户:
cd /usr/local/mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
注意,行尾有一个点“.”代表的就是当前目录,选项-R表示递归当前目录及其子目录。
MySQL5.7.7之后解压目录下面的没有scripts目录了,也就没有了原来的mysql_install_db这个初始化程序了,因此初始化命令也就变了。
现在进入主题,安装mysql
创建目录:
mdkir data #data目录一般不放在这儿,可以放在比如:/data
执行命令:
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
成功的话注意下面这一行,最后的那一串代码是mysql数据库root用户的初始密码,一会要用到
A temporary password is generated for root@localhost: Qg0gXqaU=u6/
编辑support-files/mysql.server文件,修改下面的这两行:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
拷贝这个文件到/etc/init.d目录下
cp support-files/mysql.server /etc/init.d
配置系统路径,编辑文件/etc/profile,在文件末尾添加:
export PATH=$PATH:/usr/local/mysql/bin
使配置文件生效:
source /etc/profile
将目录权限变更回来,仅保留data目录为mysql用户
chown -R root .
chown -R mysql data
启动服务,登录mysql
service mysql.server start
mysql -uroot -p
此时,不管干什么都要求修改缺省的密码,那就改一下:
alter user'root'@'localhost' identified with mysql_native_password by 'root';
OK!下面就是连接数据库,进行数据库管理工作了
安装配置之外的事
远程连接
现在使用远程连接工具连接mysql,发现连接不上,因为目前mysql的root用户只允许本地连接:
我们需要把root用户的host的localhost改为%,即允许任意地址连接(当然,出于安全考虑,可以创建其他db用户)
update user set host='%' where user='root';
flush privileges; #刷新权限,使修改生效
还是不行吗?跟防火墙有关?
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
ok!远程工具连接生效了(此处使用SQLyog)