Linux开发环境搭建之MySQL安装配置

        本文主要实践在Linux上安装和配置MySQL关系型数据库,完整的实践MySQL的下载、安装、配置、使

用的过程,为后面某些文中使用做基础

一、环境准备

1.CentOS7发行版的Linux系统(最小化安装)

2.MySQL官方编译的安装包 mysql-5.7.20-linux-glibc2.12-x86_64

下载地址:https://dev.mysql.com/downloads/mysql/

101839_NThT_2846946.png

二、安装准备

1.打开CentOS7发行版Linux系统

102319_yWg5_2846946.png

2.添加mysql组和mysql用户

执行命令groupadd mysql 添加mysql组

执行命令useradd -r -g mysql mysql 添加mysql用户

参数说明:

* useradd -r表示mysql用户是系统用户,不可用于登录系统

* useradd -g表示把mysql用户添加到mysql用户组中

102944_94Hq_2846946.png

查看新添加的组和用户 :groups mysql

103331_wiNR_2846946.png

3.使用FTP上传mysql安装包到我们创建的安装目录

104024_aej9_2846946.png文件上传

112009_7iIK_2846946.png

三、安装过程

1.解压安装包到安装目录

112438_T8dH_2846946.png

2.更改目录名为mysql

112826_A4cV_2846946.png

3.修改目录权限

进入mysql目录,修改目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

113136_653Q_2846946.png

4.安装mysql数据库

进入mysql目录下的bin目录中,执行./mysql_install_db --user=mysql,此时系统反馈错误

134136_64YK_2846946.png

错误提示:需要指定data目录,因为mysql服务进程mysqld运行时都会访问data目录,所以必须由启动mysqld进程的用户,就是我们之前设置的mysql用户,执行这个脚本或者用root 执行,但是加上参数--user=mysql上文还有警告信息,说mysql_install_db 命令已经是弃用的,建议切换到mysqld --initialize命令

注意:mysql5.7和之前版本不同,很多资料上都是这个命令:./scripts/mysql_install_db --user=mysql,mysql5.7的mysql_install_db命令是在bin目录下的并且建议 用 mysqld --initialize命令初始化

我们本文的版本是5.7.20,我们需要进入bin目录下执行初始化命令:./mysqld --initialize --user=mysql --basedir=/usr/local/deve/mysql --datadir=/usr/local/deve/mysql/data

参数解释:

--user  启动mysql的用户

--basedir  mysql安装目录

--datadir  mysql数据目录

140445_Y58y_2846946.png

[Note] A temporary password is generated for root@localhost: ae3Zk1<1b=iu

注意:最后一行系统给出了root的默认密码,到会我们会修改

5.修改目录权限

将mysql目录下除了data目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者

141448_Sq2U_2846946.png

6.修改配置文件

刚刚执行初始化命令,已经在系统的etc目录下生成了my.cnf配置文件

143207_jmVv_2846946.png

修改配置文件如下:

[client]
socket=/usr/local/deve/mysql/tmp/mysql.sock

[mysqld]
basedir=/usr/local/deve/mysql
socket=/usr/local/deve/imysql/tmp/mysql.sock
symbolic-links=0

[mysqld_safe]
log-error=/usr/local/deve/mysql/logs/mysql.log
pid-file=/usr/local/deve/mysql/logs/mysql.pid                     

!includedir /etc/my.cnf.d

154535_2kYA_2846946.png

注意:tmp目录不存在就创建,否则会出错, 创建后要赋予mysql权限,chown -R mysql:mysql tmp 如果mysql.sock指定到/tmp以外的目录,需要在my.cnf中添加[client]并且指定socket位置,否则登录mysql时会报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket  '/tmp/mysql.sock' (2),默认是会找tmp目录下的sock文件

7.将mysqld服务加入开机自启动项

修改mysql.server中basedir的相关路径,改为自定义的路径

150020_rrJt_2846946.png

将support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,执行cp mysql.server /etc/init.d/mysql  然后执行chmod +x /etc/init.d/mysql  把mysql注册为开机启动的服务chkconfig --add mysql  验证chkconfig --list mysql

150511_tCKb_2846946.png

8.mysql服务的开启和关闭

<1>mysql服务启动有以下三种方式

#/etc/init.d/mysql start   

serivce mysql start

bin/mysqld_safe&  

<2>mysql服务停止有以下三种方式

#/etc/init.d/mysql stop

service mysql stop  

bin/mysqladmin -uroot -p  (注意此时的root是指mysql的root用户)

注:脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进程转入后台

9.配置环境变量

vi /etc/profile

写入mysql的环境变量信息

151902_qCdI_2846946.png

退出保存后,执行source /etc/profile 使其生效,使用echo $PATH查看配置

152123_bxMd_2846946.png

注意:不添加环境变量或者建立软链接,运行mysql命令会出现   -bash: mysql:command not found

四、验证安装

1.启动mysql服务

153156_Jbz2_2846946.png

2.连接mysql

mysql -uroot -p  ae3Zk1<1b=iu   (生成的密码)

154744_iMTw_2846946.png

3.修改默认密码

修改mysql的密码有很多中方法

<1>.使用客户端连接

直接执行  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 

localhost是mysql的主机ip,newpass是需要设置的新密码

<2>用SET PASSWORD命令

使用 mysql -uroot -p 连接成功后

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

<3>用mysqladmin

mysqladmin -u root password "newpass"

如果root已经设置过密码,或者初始化生成了默认密码,采用如下方法

mysqladmin -u root password oldpass "newpass"

<4> 用UPDATE直接编辑user表

使用 mysql -uroot -p 连接成功后

mysql> use mysql;

mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

mysql> FLUSH PRIVILEGES;

<5>忘记root密码的时候

mysqld_safe --skip-grant-tables&

mysql -u root mysql

mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

mysql> FLUSH PRIVILEGES;

本文直接在命令行中修改,采用上面第<2>中方式

155354_tXne_2846946.png

4.远程连接mysql

我们使用另一台主机的navicat进行远程连接

160938_K1ht_2846946.png

我们发现mysql服务不允许远程连接访问,我们需要授权远程访问,有以下两种方式:

<1>通过改表实现(简单)

使用 mysql -uroot -p 连接成功后                      
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

本文使用这种方式

161917_8pxz_2846946.png

<2>通过授权

首先在安装mysql的机器上运行:mysql -h localhost -u root ,然后在命令行执行

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

如果你想允许用户test从ip为192.168.1.100的主机连接到mysql服务器,并使用123456作为密码  

GRANT ALL PRIVILEGES ON *.* TO 'test'@'192.168.1.100' IDENTIFIED BY '123456' WITH GRANT OPTION;

然后mysql>FLUSH PRIVILEGES 使修改生效

最后mysql>EXIT退出即可

例如授权任何ip使用root 以123456登陆:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

修改完成后,使用service mysql restart 重启服务,我们再次远程连接MYSQL服务,已经可以正常连接

162819_fDNd_2846946.png

注意;

跳过密码验证,执行命令行:# /usr/bin/mysqld_safe --skip-grant-tables

五、总结

        经过以上的步骤,mysql就已经正常安装可以使用了,在本文的安装配置中也遇到不少问题,经过询问别的大佬和查阅资料都完美解决,尤其是最新版的5.7.20在安装配置中和旧版本存在差异,走了很多弯路,希望本文能帮助到其他同学,如有错误也请留言提出,谢谢。

 

 

转载于:https://my.oschina.net/zss1993/blog/1600715

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值