Linux环境配置-Mysql安装与使用

1.下载mysql

 首先我们需要先从官网下载指定版本位数的安装包[mysql官网]

2.解压mysql

将压缩包放在需要的目录并解压
tar -xvf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
修改文件目录名称
mv mysql-5.6.41-linux-glibc2.12-x86_64 mysql 

同时也存在其他很多安装mysql的方法,若出现error: Failed dependencies: 
解决办法  rpm -ivh xxxxxx  --nodeps (不行再加--force)

3.新增用户组以及用户

新增用户组
groupadd mysql
新增用户
useradd -r -g mysql mysql

4.安装mysql

进入安装mysql软件目录:执行命令 cd /usr/local/mysql

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

安装数据库:执行命令 
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysql.pid --tmpdir=/var/tmp

修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

5.复制默认全局启动参数配置文件到/etc目录

 cp ./support-files/my-default.cnf /etc/my.cnf
 附一张我目前的配合属性图

6.启动mysql服务和添加开机启动mysql服务

添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录

启动mysql服务:执行命令 service mysql start
若未配置关联则使用该条命令sudo /usr/local/mysql/support-files/mysql.server start   	

ps -ef|grep mysql 或者 /usr/local/mysql/support-files/mysql.server status
都可以查看mysql是否启动成功

7.安装启动过程中可能出现的问题

7.1 bash: ./vmware-install.pl: /user/bin/perl:

 若出现该提示bash: ./vmware-install.pl: /usr/bin/perl: bad interprete安装Perl即可

yum install perl gcc kernel-devel
yum upgrade kernel kernel-devel	
	
yum -y install autoconf
7.2 The server quit without updating PID file

 一般在启动mysql的时候会出现这种情况,我们一般可以通过查看错误日志得到结果,错误日志会存储在我们开始配置文件里log-error中配置的目录,多数情况是因为读取配置文件中信息错误,或者配置错误会导致,重新检查配置文件初始化mysql即可。

7.3 Can’t connect to local MySQL server through socket

 一般在连接mysql的时候会出现这种情况,同样多数也是由于配置文件中缺少配置导致,检查/etc/my.cnf中是否存在[client]以及[mysql]并且添加了socket参数。

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
7.4 error while loading shared libraries: libaio.so.1
rpm -qa|grep libaio
yum install  libaio-devel.x86_64

Can’t connect to local MySQL server through socket的解决方法

8.连接mysql

默认情况下,账号为root,密码为空,我们先从该服务器上连接mysql服务端
/usr/local/mysql/bin/mysql -uroot

通常情况下都可以直接连接,若密码不对
	/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
新开一个命令行 mysql -uroot登录
update mysql.user set authentication_string=password('123abc') where user='root' and Host = 'localhost';//更新密码
flush privileges;//刷新权限
	
如果提示必须修改密码
set global validate_password_policy=0;//取消密码校验级别
SET PASSWORD = PASSWORD('123');

9.远程连接mysql

 当我们需要使用其他服务器去连接另一台服务器上的mysql服务,首先需要开启mysql服务端口访问,我这里就暂时用该方式开启

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload //重载生效刚才的端口设置

 若为云服务器,只需在相应控制台安全组策略添加端口开放,需要将将服务器本身服务器防火墙关闭才可远程访问
centos出现“FirewallD is not running”怎么办

 然后我们通过其他服务器去连接会出现is not allowed to connect mysql server,这是由于mysql默认只允许所在服务器连接,这里我们新建一个用户名密码都为test的mysql用户,然后新建一个testM数据库,下面给该用户授权并且设置允许远程通过该账户访问。

grant all privileges on testM.* to 'test'@'%' identified by 'test';
刷新权限,这样我们就可以通过test账户远程访问该服务器的mysql下的testM数据库
flush privileges;

windows下用navicat远程链接虚拟机Linux下MySQL数据库
MySQL添加用户、删除用户与授权

 上面我们在创建mysql用户名的时候可能会出现Field ‘ssl_cipher’ doesn’t have a default value错误是由于创建方式的问题,可以参考下面博客解决该问题。出现Field ‘ssl_cipher’ doesn’t have a default value错误怎么解决

10.Mysql配置读写分离

 在数据服务压力日益增长的时代,读写分离的策略也油然而生,这里我们可以参考我的这篇文章Spring - Mysql数据库读写分离,实现简单的读写分离配置。