下载Linux对应的MySQL https://dev.mysql.com/downloads/mysql/
CentOS选择Red Hat Enterprise Linux
在/usr/local/目录下新建目录mysql
cd /usr/local/
mkdir mysql
cd mysql/
打开文件传输工具将下载的压缩包 mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar 放到此目录
解压 tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
解压出来8个文件
mysql-community-client-8.0.17-1.el7.x86_64.rpm
mysql-community-common-8.0.17-1.el7.x86_64.rpm
mysql-community-devel-8.0.17-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-server-8.0.17-1.el7.x86_64.rpm
mysql-community-test-8.0.17-1.el7.x86_64.rpm
检查是否有预装数据库mariadb rpm -qa | grep mariadb
及是否预装mysql
检测出来了就移除 rpm -e mariadb-libs-..... --nodeps
根据检查出来的名字输入
安装
安装 common rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm --nodeps --force
查看已安装的包 rpm -qa | grep mysql
[root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep mysql
mysql-community-libs-8.0.17-1.el7.x86_64
mysql-community-server-8.0.17-1.el7.x86_64
mysql-community-common-8.0.17-1.el7.x86_64
mysql-community-client-8.0.17-1.el7.x86_64
初始化
通过一下命令完成mysql初始化
mysqld --initialize
如果报如下错误信息:
mysqld:error while loading shared libraries: libaio.so.1: cannot open shared object file: No shch file or directory
则安装下 libaio.so.1 包
# 方案1
yum install -y libaio
# 方案2,如果方案1安装后,继续初始化mysql没成功,则执行该方案
yum install -y libaio.so.1
授权服务
# 给mysql目录授权,一般不用操作,root用户拥有所有权限
chown mysql:mysql /var/lib/mysql -R;
# 启动mysql服务
systemctl start mysqld.service;
# 配置开机启动
systemctl enable mysqld;
查看数据库默认密码 cat /var/log/mysqld.log | grep password
[root@izuf63okxpwhhlr3bu263dz mysql]# cat /var/log/mysqld.log | grep password
2019-10-07T08:45:06.207436Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gfn,!V/j7tlz
mysql -u root -p gfn,!V/j7tlz
alter user ‘root‘@‘localhost‘ identified with mysql_native_password by ‘root‘;
授权远程访问
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
此时采用Navicat等可视化客户端可能无法连接,因为端口未对外开放
防火墙配置
# 查看防火墙状态
systemctl status firewalld
# 启动防火墙,防火墙启动后,除了22端口对外能够访问,其他端口军不能使用,所以需要添加
systemctl start firewalld
# 添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载
firewall-cmd --reload
其他
查看MySQL配置文件
# 默认的配置文件为: /etc/my.cnf
cat /etc/my.cnf
查看进程语句 ps -ef | grep mysql
大功告成
忽略大小写配置
$ vim /etc/my.cnf
[mysqld]
lower_case_table_names=1
但是在MySQL8 这样不行,网上有说要在初始化的时候设置才有效 --initialize --lower-case-table-names=1
但是我怎么试也不行,只要启动服务就报错
[root@izuf63okxpwhhlr3bu263dz mysql]# systemctl start mysqld.service;
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
折腾半天只好让它大小写敏感去吧,反正我也不是运维
关闭mysql服务
[root@izuf63okxpwhhlr3bu263dz mysql]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
查看安装的mysql
[root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep -i mysql
mysql-community-libs-8.0.17-1.el7.x86_64
mysql-community-server-8.0.17-1.el7.x86_64
mysql-community-common-8.0.17-1.el7.x86_64
mysql-community-client-8.0.17-1.el7.x86_64
卸载列出来的所有mysql
rpm -ev mysql-community-......... --nodeps
删除mysql相关
find / -name mysql
rm -rf /var/lib/mysql/
......
删除my.cnf
rm -rf /etc/my.cnf
检查卸载情况
rpm -qa|grep -i mysql
为空,大功告成
原文:https://www.cnblogs.com/yxmhl/p/11633047.html