文章目录
提前须知
windows系统中安装MySQL参考:https://blog.csdn.net/weixin_45583303/article/details/105252118
下面介绍Linux系统中安装MySQL
Linux版本的MySQL下载
下载地址:https://downloads.mysql.com/archives/community/
- 我下载的版本如下:
卸载系统自带的数据库
卸载系统自带的MySQL
数据库
-
使用下面的命令查找系统自带的MySQL数据库
rpm -qa | grep mysql
-
如果有,如下:
mysql-libs-5.1.52-1.el6_0.1.x86_64
-
直接卸载:
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 // 普通删除模式 rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64 // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
卸载系统自带的 mariadb
数据库
-
使用下面的命令查找系统自带的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
安装前准备
将下载好的安装包通过远程传输工具(xshell,xftp)
传输到Linux系统上的/usr/lib
目录中:
- 如果没有访问该文件夹的权限,就修改一下,如下:
- 然后拖拽传输即可:
解压MYSQL安装包
传输完毕,进入到/usr/lib
文件夹下面解压
文件,然后重命名
为mysql5.7:
[root@localhost lib]# tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@localhost lib]# mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql5.7
创建MYSQL用户和用户组
-
检查mysql组和用户是否存在,如无创建,则创建
cat /etc/group | grep mysql
-
执行添加命令创建mysql用户组
groupadd mysql useradd -g mysql mysql
创建data文件夹
在 /usr/lib/mysql5.7
⽬录下创建一个文件夹,后续备⽤(存放数据库文件的文件夹):
mkdir data
修改MYSQL目录的归属用户
chown -R mysql:mysql ./
准备MYSQL的配置⽂件
-
在
/etc
⽬录下新建my.cnf
⽂件touch /etc/my.cnf
-
写⼊如下简化配置:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve #设置3306端⼝ port = 3306 socket=/var/lib/mysql/mysql.sock # 设置mysql的安装⽬录 basedir=/usr/lib/mysql5.7 # 设置mysql数据库的数据的存放⽬录 datadir=/usr/lib/mysql5.7/data # 允许最⼤连接数 max_connections=200 # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使⽤的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M
-
修改
my.cnf
⽂件,添加上面的配置:按
i
开始输入,设置完成之后按esc
退出,然后按wq
保存退出vim my.conf
-
同时使⽤如下命令创建
/var/lib/mysql
⽬录,并修改权限:mkdir /var/lib/mysql chmod 777 /var/lib/mysql
正式开始安装MYSQL
转到/usr/lib/mysql5.7
目录下,执行下面的初始化命令:
cd /usr/lib/mysql5.7
./bin/mysqld --initialize --user=mysql --basedir=/usr/lib/mysql5.7 --datadir=/usr/lib/mysql5.7/data
注意:记住上⾯打印出来的 root 的密码(红框中的内容
),后⾯⾸次登陆需要使⽤
复制启动脚本到资源目录
执⾏如下命令复制(注意在/usr/lib/mysql5.7
目录下执行):
cp ./support-files/mysql.server /etc/init.d/mysqld
并修改 /etc/init.d/mysqld
,修改其 basedir
和 datadir
为实际对应⽬录:
basedir=/usr/lib/mysql5.7
datadir=/usr/lib/mysql5.7/data
设置MySQL系统服务并开启⾃启
⾸先增加 mysqld
服务控制脚本执⾏权限:
chmod +x /etc/init.d/mysqld
同时将 mysqld
服务加⼊到系统服务:
chkconfig --add mysqld
最后检查 mysqld 服务是否已经⽣效即可:
chkconfig --list mysqld
这样就表明 mysqld 服务已经⽣效了,在2、 3、 4、 5运⾏级别随系统启动⽽⾃动启动,以后可以直接使⽤ service
命令控制 mysql
的启停。
启动MySQL
直接执⾏:
service mysqld start
将MySQL的BIN目录加入PATH 环境变量
这样⽅便以后在任意⽬录上都可以使⽤ mysql
提供的命令。
编辑 /.bash_profile
⽂件,在⽂件末尾处追加如下信息:
vim ~/.bash_profile
# 追加的内容如下
export PATH=$PATH:/usr/lib/mysql5.7/bin/
最后执⾏如下命令使环境变量⽣效
source ~/.bash_profile
首次登陆MySQL
以 root
账户登录 mysql
,使⽤上⽂安装完成提示的密码进⾏登⼊,先执行下面的代码
,然后输入密码:
mysql -u root -p
接下来修改root账户密码
,在mysql的命令⾏
执⾏如下命令即可,密码可以换成你想⽤的密码即可:
mysql>alter user user() identified by "12345678";
mysql>flush privileges;
设置远程主机登录
MySQL默认是不能远程登录的,我们需要设置一下,如下:
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
开放3306端口号
sudo firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
测试远程连接
使⽤NAVICAT等⼯具进⾏测试即可
后记
安装MySQL的时候需要配置的地方有两个:
- 脚本文件:mysql.server
- 配置mysql的安装路径
- 配置mysql的data文件夹路径
- 配置文件:my.cnf
- 配置mysql的端口号等
先说配置脚本文件的作用:如果想在终端的任何地方都可以使用mysql命令启动MySQL数据库,需要将mysql的脚本配置文件(mysql.server)配置到/etc/init.d/mysql
目录下面,这个文件夹原本在[安装数据库的文件夹]/support-files/mysql.server
,为了安全,我们可以拷贝一份到/etc/init.d/mysql
下,命令如下:
cp cp -r /usr/lib/mysql.7/support-files/mysql.server /etc/init.d/mysql
再来说一下配置文件:为什么可以在/etc
目录下使用MySQL的配置文件?
- 查看Linu下mysql的安装位置 which mysql
$ which mysql
/usr/lib/mysql5.7/bin/mysql #返回结果
- 查看mysql默认配置文件的位置(需要使用前面命令的查询结果):
[前面的返回结果] --verbose --help |grep -A 1 'Default options'
$ /usr/lib/mysql5.7/bin/mysql --verbose --help |grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
- 这句话是,默认选择从下面给出的位置,优先级为从左到右,越来越低。
/etc/my.cnf > /etc/mysql/my.cnf > /usr/local/mysql/etc/my.cnf > ~/.my.cnf
- 通过上面可以看出mysql读取配置文件路径的顺序以及位置,因此我们就可以在
/etc
下面自己创建一个配置文件my.cnf
,MySQL数据库启动的时候就可以读取到。