在Linux中安装MySQL
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux中安装MySQL相关的知识,希望对你有一定的参考价值。
目录
准备工作
检查当前系统是否安装过mysql
在CentOS6的环境下输入rpm -qa|grep mysql命令查看
出现如上图的内容表示Linux默认安装时自带了mysql相关的组件,但我们需要卸载掉自带的mysql,所以执行rpm -e --nodeps mysql-libs命令
MySQL的安装
MySQL Linux版的下载
安装的版本是mysql5.7,在官网下载https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载下来后如下两个压缩包
通过软件将两个压缩包移动到虚拟机中的Linux系统下的/usr/mysql/目录下,如果没有该目录则进行创建
我本地使用的连接工具是Xshell,可以使用它内置的XFtp来传输文件
安装MySQL
①安装rpm包
执行rpm -ivh mysql-community-client-5.7.34-1.el6.i686.rpm命令安装
执行rpm -ivh mysql-community-server-5.7.34-1.el6.i686.rpm命令安装
如果安装遇到下面的问题,请参考:在Linux中安装MySQL报错“error: Failed dependencies: mysql-community-libs(x86-32) >= 5.7.9 is needed by my“
②查看是否安装成功
使用mysqladmin --version命令可以查看是否安装成功,如果安装成功会出现如下提示
也可以通过rpm -qa|grep mysql命令查看是否安装成功
③设置用户和密码
执行mysqladmin -u root password命令设置密码
如果报错请参考:在Linux中执行mysqladmin命令修改密码报错“mysqladmin: connect to server at ‘localhost‘ failed“
卸载MySQL
①使用rpm -qa|grep -i mysql命令查看安装了哪些mysql
②执行rpm -e --nodeps 包名命令进行卸载
再度查看就没有了
③查找之前的mysql文件夹并删除
并手动删除my.cnf
MySQL服务
MySQL服务的启动和停止
查看服务的状态:service mysqld status
启动服务:service mysqld start
停止服务:service mysqld stop
重启服务:service mysqld restart
启动后,查看进程
MySQL的安装位置
参数 | 路径 | 解释 | 备注 |
---|---|---|---|
--datadir | /var/mysql/ | mysql数据库文件的存放路径 | |
--basedir | /usr | 相关命令目录 | myadmin、mysqldump等命令 |
--plugin-dir | /usr/lib/mysql/plugin | mysql插件存放路径 | |
--log-error | /var/log/mysqld.log | mysql错误日志路径 | |
--pid-file | /var/run/mysqld/mysqld.pid | 进程pid文件 | |
-socket | /var/lib/mysql/mysql.sock | 本地连接时用的unix套接字文件 | |
/usr/share/mysql | 配置文件目录 | mysql脚本及配置文件 | |
/etc/init.d/mysql | 服务启停相关脚本 |
MySQL服务的自启动
MySQL一般部署在Linux环境下,那么数据库服务应该是一直启动的,不可能每天都需要启动,那么就需要配置MySQL的自启动。
执行chkconfig --list|grep mysql命令查询MySQL服务的启动状态,发现MySQL默认是开机自启动的。
修改字符集
常用命令
SQL语句 | 描述 | 备注 |
---|---|---|
create database 数据库名 character set utf8 | 创建数据库并设置字符集为utf8 | |
show create database 数据库名 | 查看数据库的字符集 | |
show variables like '%char%' | 查询所有跟字符集相关的变量 | |
set[字符集属性]=utf8 | 设置相应的属性为utf8 | 只是临时修改,当前有效。服务重启后,失效 |
alter database 数据库名 character set 'utf8' | 修改数据库的字符集 | |
alter table 表名 convert to character set 'utf8' | 修改表的字符集 |
字符集乱码原因
我们可以创建一张表来查看默认的字符集,默认的字符集是"latin1"。
当我们向表中插入中文数据时,直接报错,因为默认的字符集"latin1"中不包含中文字符,因此报错:
输入show variables like '%char%';命令查看数据库的字符集情况:
修改字符集
①修改配置文件
找到/etc/my.cnf配置文件,如果没有这个文件则从mysql安装目录下找到.cnf文件,然后复制到/etc/目录下,并改名为my.cnf,然后按照如下进行修改。
执行vi /etc/my.cnf命令进行配置文件的修改
修改处一:
修改处二:
保存退出,执行service mysqld restart命令重启mysql服务。
再进入mysql,执行show variables like '%char%';命令插入字符集是否修改成功。
现在就能插入中文字符成功
②修改已创建库、表字符集
# 修改数据库的字符集
alter database mydb character set 'utf8';
# 修改数据表的字符集
alter table mytbl convert to character set 'utf8';
③修改已经乱码数据
无论是修改 mysql 配置文件或是修改库、表字符集,都无法改变已经变成乱码的数据。
只能删除数据重新插入或更新数据才可以完全解决。
设置大小写不敏感
Windows系统默认大小写不敏感,而Linux系统的大小写是敏感的。
在mysql中执行show variables like '%lower_case_table_names%';命令查看大小写是否敏感:
可以通过修改配置文件来设置大小写敏感:在/etc/my.cnf配置文件的[mysqld]下面添加lower_case_table_names=1,然后重启mysql服务即可。
保存退出后重启mysql服务
再次进入mysql查看
而关于lower_case_table_names参数的值有如下三种情况:
属性值 | 描述 |
---|---|
0 | 大小写敏感 |
1 | 大小写不敏感。创建的表,数据库都是以小写形式存放在磁盘上,对于 sql 语句都是转换为小写对表和 DB 进行查找 |
2 | 创建的表和 DB 依据语句上格式存放,凡是查找都是转换为小写进行 |
注意:如果要设置属性为大小写不敏感,要在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名。在进行数据库参数设置之前,需要掌握这个参数带来的影响,切不可盲目设置。
异常参考
在MySQL的安装使用过程中如果遇到一些错误,可以参考下列链接:
- 在Linux中安装MySQL报错“error: Failed dependencies: mysql-community-libs(x86-32) >= 5.7.9 is needed by my“
- 在Linux中执行“service mysqld start“error while loading shared libraries: libaio.so.1“
- 在Linux中安装MySQL执行“service mysqld start“启动服务失败报错“初始化 MySQL 数据库: [失败]“
- 在Linux中安装MySQL报错“[ERROR] --initialize specified but the data directory has files in it.“
- 在Linux中安装MySQL执行“service mysqld start“启动服务失败报错“MySQL Daemon failed to start.“
- 在Linux中执行mysqladmin命令修改密码报错“mysqladmin: connect to server at ‘localhost‘ failed“
- MySQL执行安装“rpm -ivh mysql-community-server-5.7.34-1.el6.i686.rpm“报错“error:Failed dependencies“
- MySQL报错“You must reset your password using ALTER USER statement before executing this statement.“
- file /usr/share/ from install of mysql-community-common conflicts with file from package mysql-libs
- Linux系统安装MySQL报错“ Access denied for user ‘root‘@‘localhost‘ (using password: YES)“
以上是关于在Linux中安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章