Linux 安装mysql数据库
1.1 检查 linux 系统版本
[root@rabbitmq2~]# cat /etc/system-release
CentOS Linux release 7.3.1611 (Core)
- 检查是否已经安装过mysql,执行命令
[root@localhost /]# rpm -qa | grep mysql
如果有安装过删除命令如下:
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
再次执行查询命令,查看是否删除
[root@localhost /]# rpm -qa | grep mysql
2. 查询所有Mysql对应的文件夹命令:
[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql
删除相关目录或文件
[root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
3. 3、检查mysql用户组和用户是否存在,如果没有,则创建
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]#
4、从官网下载是用于Linux的Mysql安装包
下载命令:
[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
二 安装Mysql
1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令:
[root@localhost /]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。
如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
2、在/usr/local/mysql目录下创建data目录
[root@localhost /]# mkdir /usr/local/mysql/data
3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql
4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
补充说明:
第4步时,可能会出现错误:
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
[root@localhost bin]# rpm -qa|grep libaio
[root@localhost bin]#
运行命令后发现系统中无该链接库文件
[root@localhost bin]# yum install libaio-devel.x86_64
安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:
执行如下命令后:
[root@localhost bin]# yum -y install numactl
执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!
5、运行初始化命令成功后,输出日志如下:
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
6. 完成初始化后编辑配置文件 vi /etc/my.cnf
【直接拷贝下面配置文件,不需要做任何修改】
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
#跳过密码验证,忘记密码 可以设置,然后修改密码,再关闭
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 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=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
7. 将mysql加入到服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
开机启动
chkconfig mysql on
启动mysql
service mysql start
8. 设置mysql密码(因为在配置文件取消了密码验证,可以直接回车键)
配置环境变量 vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
如果配置了环境变量,可以使用
mysql -u root -p
如果,没有配置环境变量
/usr/local/mysql/bin/mysql -uroot -p
上图为登录成功,再操作数据库设置密码
use mysql;
update user set authentication_string=password('你的密码') where user='root';
或者#set password=password("root");
flush privileges;
exit
将 /etc/my.cnf 中skip-grant-tables删除或注释掉 然后重启Mysql
service mysql restart
9. 设置可以远程连接
mysql -u root -p
输入密码
use mysql;
如果进行操作出现下面的提示:
You must reset your password using ALTER USER statement before executing this statement
退出;
就重新设置一遍密码(原密码一样):
mysql -u root -p
mysql> alter user 'root'@'localhost' identified by'你的密码';
exit;
10. 再次设置远程连接
mysql -u root -p
use mysql;
update user set host='%' where user = 'root';
flush privileges;
exit;
11. 测试:关闭防火墙
查看状态: systemctl status firewalld
启动: systemctl start firewalld
关闭: systemctl stop firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
开放防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload