Linux服务器搭建——MySQL的安装
1、删除系统自带的mysql或者mariadb
运用rpm命令检查系统中是否存在MySQL或maridadb
rpm -qa|grep mysql
rpm -qa|grep mariadb
若存在,则执行以下命令删除:
rpm -e 软件名
这里的软件名必须包含软件的版本信息
若卸载失败,执行以下命令强制卸载:
rpm -e --nodeps 软件名
PS:rpm命令是RPM软件包的管理工具(参考:https://www.cnblogs.com/ftl1012/p/rpm.html)
2、运行以下命令安装MySQL
安装依赖:
yum install -y libaio-*
创建mysql安装目录
mkdir /usr/local/mysql
进入软件压缩包管理区域
cd /usr/local/packages
可以在线下载mysql安装包:
wget https://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
也可以直接上传(上一篇中有提到)
解压mysql安装包(tar的参数中加上了z)
tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
移动解压文件至mysql目录
mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql
3、依次运行以下命令建立 MySQL 组和用户,并将用户添加到组中:
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
进入安装目录:
cd /usr/local/mysql
修改当前目录拥有者为mysql用户:
chown -R mysql:mysql ./
进入scripts文件下
cd scripts
运行命令初始化MySQL数据库:
./mysql_install_db --datadir=/usr/local/mysql/data/ --basedir =/usr/local/mysql --user=mysql
若报异常提示mysql.plugin找不到,异常信息,/usr/bin/perl: bad interpreter: No such file or directory,没有/usr/bin/perl文件或者档案,则需要安装perl和perl-devel,执行:
yum -y install perl perl-devel
再次执行数据库初始化命令,又提示:
FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db:
Data::Dumper
则需要安装dumper,执行:
yum install -y perl-Data-Dumper
再次执行数据库初始化命令
成功。
4、权限
修改当前目录拥有者为root用户:
chown -R root:root ./
修改当前data目录拥有者为mysql用户:
chown -R mysql:mysql data
5、依次运行以下命令设置开机自启动:
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
添加执行权限
chmod +x /etc/init.d/mysqld
vim /etc/rc.d/rc.local
在 rc.local 文件中添加 /etc/init.d/mysqld start
退出编辑,保存
6、启动MySQL数据库
/etc/init.d/mysqld start
7、设置环境变量
运行 vi /root/.bash_profile 打开文件,按 i 进入编辑模式。
将 PATH 修改为
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
按 esc 键退出编辑模式,输入 :wq 保存并关闭文件。
运行 source /root/.bash_profile 重新执行文件。
修改 MySQL 的 root 用户密码:初始化后 MySQL 为空密码可直接登录,为了保证安全性需要修改 MySQL 的 root 用户密码。mysqladmin -u root password
测试登录 MySQL 数据库。 mysql -uroot -p密码 #-p和密码之间无空格
远程数据库授权:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
使授权生效:FLUSH PRIVILEGES;
ctrl+d 退出mysql
8、远程连接
修改/etc/my.cnf配置文件,添加编码配置和端口号
查看my.cnf的具体路径
(参考:
https://blog.****.net/djcode/article/details/78621772
https://www.cnblogs.com/sunpear/p/8117113.html)
/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'
从5.7.18开始不在二进制包中提供my-default.cnf文件,可以自己新建在指定目录下,复制必要信息,mysql会在启动时自动匹配
在[mysqld]下添加编码配置:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
修改端口号、开放端口
port=3306
重新启动mysql服务使配置生效:
systemctl restart mysqld
或者
service restart mysqld
开放端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
远程测试连接
参考文章:
https://www.cnblogs.com/pretty-sunshine/p/9749450.html
https://www.cnblogs.com/ivictor/p/5727395.html
https://www.cnblogs.com/zhjh256/p/5728878.html
https://blog.****.net/lssoop/article/details/80033104
开放端口号
https://www.cnblogs.com/tony-brook/p/9876543.html