1 mysql数据的linux(centeros系统)安装准备
1.1 mysql在linux上支持三种安装方式
使用tar.gz解压方式安装(推荐);
使用rpm包进行安装;
在线安装;
1.2 准备
下载mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz文件包;
为当前环境设置 mysql用户和mysql组;
命令:以root身份
useradd mysql--创建mysql用户名和mysql的组
passwd mysql--为mysql用户设置密码
测试当前系统环境是否已经安装MySql
测试是否已经安装mysql命令:
[root@localhost mysql]# rpm -qa|grep mysql
2 在CenterOS7安装MySql5.6.39
2.1 在/home/mysql目录下解压mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz文件,并且将加压后文件重命名为mysql;
注意: 以上操作以root身份操作
移动压缩包:mv mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz /home/mysql/
解压文件命令:
[root@localhost mysql]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
重命名解压后的文件夹命令:
[root@localhost mysql]# mv mysql-5.6.39-linux-glibc2.12-x86_64 mysql
2.2 查看当前系统所支持默认mysql启动配置文件/etc/my.cnf
2.3 修改解压后mysql中所有文件的权限为mysql:mysql
命令:进入mysql用户下的mysql文件夹
chown -R mysql:mysql .
[root@localhost mysql]# chown -R mysql:mysql .
[root@localhost mysql]# ll
总用量 48
drwxr-xr-x. 2 mysql mysql 4096 2月 6 19:13 bin
-rw-r--r--. 1 mysql mysql 17987 12月 9 15:33 COPYING
drwxr-xr-x. 3 mysql mysql 18 2月 6 19:13 data
drwxr-xr-x. 2 mysql mysql 55 2月 6 19:13 docs
drwxr-xr-x. 3 mysql mysql 4096 2月 6 19:13 include
drwxr-xr-x. 3 mysql mysql 4096 2月 6 19:13 lib
drwxr-xr-x. 4 mysql mysql 30 2月 6 19:13 man
drwxr-xr-x. 10 mysql mysql 4096 2月 6 19:13 mysql-test
-rw-r--r--. 1 mysql mysql 2496 12月 9 15:33 README
drwxr-xr-x. 2 mysql mysql 30 2月 6 19:13 scripts
drwxr-xr-x. 28 mysql mysql 4096 2月 6 19:13 share
drwxr-xr-x. 4 mysql mysql 4096 2月 6 19:13 sql-bench
drwxr-xr-x. 2 mysql mysql 136 2月 6 19:31 support-files
2.4 linux建议将软件尽量安装/usr/local/
将mysql目录移动到/user/local/目录下
2.5 创建数据库,运行安装脚本
运行mysql/scripts/目录下mysql_install_db安装脚本,开始安装mysql数据
[root@localhost scripts]# pwd usr/local/mysql/scripts
[root@localhost scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
问题一:
bash: ./mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
解决方案:
上述文件运行需要安装gcc以及perl等解释器,解决方案:
运行在线安装命令:
yum install perl gcc kernel-devel
问题二:
FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db:
Data::Dumper
解决方案:
解决方法 :安装autoconf库
命令:yum -y install autoconf
2.6 mysql运行使用root声明运行数据库,使用mysql用户操作数据
在系统运行mysql数据库前修改mysql安装文件的权限:
命令:
进入mysql目录, chown -R root:root .
作用支持root身份运行mysql数据库;
但是,需要使用mysql用户操作数据,所以
单独为data(装载数据库中的数据文件)目录, 单独使用mysql用户权限
命令: chown -R mysql:mysql data
2.7 测试mysql能否运行成功
进入/etc/init.d/mysql中,运行./mysql.server restart,是否运行成功
报错:Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).
进入:/usr/local/mysql/support-files,重新运行./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
进入:/usr/local/mysql/bin
运行:./mysql -u root #进入mysql命令行 exit退出
3 成功运行mysql服务后,通过命令进入mysql数据库,准备进行操作
3.1 登录mysql数据库
命令: /usr/local/mysql/bin/mysql -u root
选项 :-u表示 user对应数据库登录的用户名,root是mysql数据默认管理员;
3.2 当以root身份,无密码登录成功后,可以为root用户添加密码
mysql>use mysql;
mysql> update user set password=PASSWORD('123456') where USER='root';
mysql> quit
3.3 重写启动mysql服务,以root用户名重新登录
4 mysql开机启动设置
4.1 设置mysql的服务
mysql启动服务脚本在/usr/local/mysql/support-files目录下的mysql.server;通过shell手工启动;
将该启动脚本设置linux中启动目录中 /etc/init.d/
通过命令:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
注意:
/etc/init.d/没有mysql文件,将mysql.server在启动目录重命名叫mysql;
设置完成,可以通过shell中使用启动命令,来启动mysql的服务:
shell命令:
service mysql start
(但是,必须要每次开机,手工输入该命令)
4.2 mysql服务设为为开机启动
在4.1中手工设置mysql服务(mysql.server别名), mysql启动mysql、
数据库的名称,通过chkconfig命令添加开启启动
命令:
chkconfig --add mysql
4.3 添加环境变量
vi /etc/profile→G→export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
4.4 进入mysql命令:mysql -u root -p(如果没有密码,不用加-p)
5 设置mysql中文支持
备注:
mysql支持字符集环境的设置:
A:查看当前数据的字符集
mysql> show variables;----表示显示当前mysql数据库的环境变量
mysql> show variables like 'character%';----查询以character开头环境变量,其中%是sql中通配符表示0到n个字符
B:发现,数据库默认安装设置包含latin1(西欧)字符集,不支持中文数据;
修改mysql启动配置文件,位置/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
重启mysql服务:
service mysql restart
6 设置mysql支持远程客户端连接
mysql>use mysql;
mysql> grant all privileges on *.* to root@'%' (identified by "root" 改变root用户的密码为“root”);
同时修改root用户的密码为:root;
需要关闭防火墙或设置防火墙打开3306端口
systemctl stop firewalld.service
systemctl disable firewalld.service