Linux环境下mysql的安装
1、环境准备
(1)卸载自带的Mariadb
命令:rpm –qa|grep mariadb ---------查询已经安装的mariadb
rpm –e –nodeps 文件名------------------卸载mariadb
(2)创建配置文件my.cnf
命令:touch /etc/my.cnf
(3)创建一个用户名为mysql的用户并加入mysql用户组
命令:
Groupadd mysql---------------创建mysql用户组
Useradd –g mysql mysql--------mysql用户加入到mysql用户组
2、安装
(1)下载安装包
下载mysql安装文件,因为我使用的是内网环境,没有外网,下载的是离线安装
下载地址:https://downloads.mysql.com/archives/community/
我下载的是5.7.30版本
根据需要的版本,系统进行过滤选择
(2)上传安装包
在/usr/local目录下创建mysql文件夹,把下载的安装包用ftp上传到该文件夹下
(3)解压缩
进入mysql文件夹,解压缩文件
命令:tar –zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
(4)配置my.cnf文件
授予my.cnf最大权限
命令:chmod 664 /etc/my.cnf
进入配置文件,复制一下文字,再根据实际情况进行修改
[client]
socket=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/mysql.sock
[mysqld]
port=3306
user=root
basedir=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/
datadir=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/data
socket=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/mysql.sock
pid-file=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysqld.pid
log-error=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/mysql.err
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO
配置完成后退出保存,执行命令:source /etc/my.cnf 使配置文件生效
该路径下data文件是不存在的,需要自己创建
更改mysql目录下所有的目录及文件夹所属的用户组和用户
命令:chown -R root:root /usr/local/mysql/ mysql-5.7.30-linux-glibc2.12-x86_64
(5)初始化mysql
命令:
./mysqld --initialize --user=root --basedir=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/ --datadir=/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/data/
初始化后在/usr/local/mysql/mysql-5.7.30-linux-glibc2.12-x86_64/mysql.err找到初始化密码
3、添加mysqld服务
(1)复制启动脚本到资源目录
命令:cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
(2)增加mysqld服务控制脚本执行权限
命令:chmod +x /etc/rc.d/init.d/mysqld
(3)将mysqld服务加入到系统服务
命令:chkconfig --add mysqld
(4)检查mysqld服务是否已经生效
命令:chkconfig --list mysqld
(5)启动mysqld
命令:service mysqld start
(6)将mysql的bin目录加入path环境变量
编辑文件~/.bash_profile文件,在文件的最后添加如下信息
添加完后退出保存,使修改的内容立即生效
命令:Source ~/.bash_profile
4、设置root账号密码
在上面初始化后有生成初始密码,执行mysql –u root –p命令后直接输入初始密码然后回车
如果初始化没有生成密码,可以先在/etc/my.cnf中添加如下内容:
在[mysqld]下添加skip-grant-tables,然后保存并退出。这句意思其实是,无密码登录。
然后重启mysql服务
systemctl restart mysqld
重启以后使用命令mysql –u root –p进入mysql命令行,无需输入密码,直接回车进入
使用该语句修改密码:
update mysql.user set authentication_string=PASSWORD('xmgps') where user='root';
注意:如下图,我用的第一个语句字段是password,但是我当前安装的这个版本的usr表字段有修改,对应的密码字段是authentication_string,另外语句最后的分号一定不要忘记。
修改密码成功后刷新权限
命令:flush privileges;
最后把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart
5、开启远程连接
密码修改成功后用navicat连接mysql,你会发现连不上,报如下错误,这是因为mysql没有开启远程连接,不允许其他服务器进行连接。
(1)用之前设置的root密码登陆到mysql,然后执行如下命令
Update mysql.user set host=’%’ where user=’root’
但是执行命令的时候报错,说必须要重置密码才能使用该语句
于是乎又重复了一遍修改密码的操作,该语句才执行成功。
执行完上述语句后就能正常连接了