Linux下安装配置MySQL5.7服务器

时间:2022-03-14 18:00:14

Linux下安装配置MySQL服务器


一、安装环境
============

OS:centos6.8

MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

安装目录:/usr/local/mysql57
用root用户安装。
安装目录规划:
/usr/local/mysql57
                 |----mysql-5.7.16-linux-glibc2.5-x86_64 
                 |----mysql  ->mysql-5.7.16-linux-glibc2.5-x86_64 
                 |----data
二、安装步骤
============
1、解压安装包
[root]#cd /usr/local
[root]#mv  /path/to/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  .
[root]#tar -xzf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root]#mkdir mysql57
[root]#mv mysql-5.7.16-linux-glibc2.5-x86_64  mysql57/
[root]#cd mysql57
[root]#ln -s mysql-5.7.16-linux-glibc2.5-x86_64  mysql
以上步骤之后,就将mysql安装到/usr/local/mysql目录中了。
2、创建数据目录data和配置文件my.cnf
创建数据目录data
[root]#cd /usr/local/mysql57
[root]#mkdir data       
创建配置文件my.cnf
[root]#cp /usr/local/mysql57/mysql/support-files/my-default.cnf  /etc/my.cnf
[root]#vi /etc/my.cnf
在其中设置:
[mysqld]
basedir = /usr/local/mysql57/mysql
datadir = /usr/local/mysql57/data
port = 3306
3、添加bin到path环境变量
在/etc/profile中添加以下内容:
export PATH=/usr/local/mysql57/mysql/bin:$PATH
保存退出,之后source /etc/profile
4、创建mysql用户和mysql用户组 
[root]#groupadd mysql     
[root]#useradd -r -s /bin/false -g mysql mysql
5、初始化数据目录
[root]#bin/mysqld --user=mysql --basedir=/usr/local/mysql57/mysql --datadir=/usr/local/mysql57/data --initialize-insecure  #初始化数据目录
在Ubuntu16.04上执行这条命令的时候,会提示系统没有libaio.so.1这个动态链接库,这时候需要apt-get install libaio-dev,安装完成后,就可以正常初始化数据目录了。
6、启动mysql数据库服务器
[root]#cd /usr/local/mysql57/mysql
[root]#bin/mysqld_safe --user=mysql &
7、登录mysql服务器并修改root用户密码
下面用mysql的命令来为root用户设置密码:
[root]#cd /usr/local/mysql57/mysql
[root]#mysql -uroot --skip-password
mysql>set password for 'root'@'localhost' = password(‘123456’);   #设置root密码为123456
mysql>quit;
设置root密码还有很多其他的方法。
如下是另一种,这种方法是使用SQL语言中的update语句去更新系统数据库myslq中user表:
mysql>use mysql;
mysql>update user set password=password('123456') where user='root'; 
mysql> flush privileges; 
这样mysql服务器就安装好了,可以登录mysql服务器,执行一些基本命令来验证服务器。
以下两步是做额外的设置。 
8、添加root用户的远程访问权限
为什么要添加root用户的远程访问权限呢?因为默认情况下,mysql系统是不允许root用户从远程登录的,只允许root用户从本地登录,为了方便管理,这才要给加添root的远程权限。
[root]#mysql -uroot -p
mysql>grant all privileges on *.* to root@'%' identified by '123456';  #允许远程以root用户操作所有的数据库
mysql>flush privileges;
mysql>quit;
9、设置mysql服务器开机自启动
[root]#cp /usr/local/mysql57/mysql/support-files/mysql.server /etc/init.d/mysqld
[root]#vi /etc/init.d/mysqld
打开mysqld文件,往其中的basedir和datadir中输入正确的路径。
basedir=/usr/local/mysql57/mysql
datadir=/usr/local/mysql57/data
#设置开机自启动
[root]#chkconfig --add mysqld
[root]#chkconfig --level 345 mysqld on
这样就配置好了mysql服务器。这样配置的服务器可以开机之后自己启动在后台运行,可以通过远程客户端使用root用户来管理。
三、连接MySQL服务器
========================

连接MySQL服务器有两种方法:本地连接和远程连接。

1、本地连接
本地连接,也叫SOCKET连接,指的是在MySQL服务器所在的机器上通过socket文件创建的连接。通常要检查MySQL服务器状态时,就可以登录到MySQL服务器所在的机器,通过本地连接的方式连接到MySQL服务器,去检查MySQL服务器的状态。或者在应用开发过程中,应用和MySQL部署在同一台机器上,这时候连接MySQL服务器就可以通过本地连接的方式进行。
$mysql -S/tmp/mysql.sock -uroot -p   #mysql服务器启动后一般在/tmp目录下创建一个mysql.sock的socket文件,当然如果一般情况在本地的话,连接的时候可以省去-S。
2、远程连接
远程连接,也叫TCP/IP连接,指的是从MySQL服务器以外的服务器或客户端连接MySQL服务器的方式。远程连接和本地连接唯一的区别就是,远程连接需要指定MySQL服务器的IP地址和它监听的端口号。通过,当MySQL服务器和应用服务器部署在不同的服务器上的时候,就需要从应用服务器远程连接到MySQL服务器上去操作MySQL服务器。
$mysql -h127.0.0.1 -P3306 -uroot -p