在Linux中安装MySQL
  TEZNKK3IfmPf 2023年11月14日 19 0

准备工作

检查当前系统是否安装过MySQL

在CentOS6的环境下输入rpm -qa|grep mysql命令查看

在Linux中安装MySQL

出现如上图的内容表示Linux默认安装时自带了mysql相关的组件,但我们需要卸载掉自带的mysql,所以执行rpm -e --nodeps mysql-libs命令

在Linux中安装MySQL

MySQL的安装

MySQL Linux版的下载

安装的版本是mysql5.7,在官网下载MySQL :: Download MySQL Community Server

在Linux中安装MySQL

在Linux中安装MySQL

在Linux中安装MySQL

在Linux中安装MySQL

下载下来后如下两个压缩包

在Linux中安装MySQL

通过软件将两个压缩包移动到虚拟机中的Linux系统下的/usr/mysql/目录下,如果没有该目录则进行创建

在Linux中安装MySQL

我本地使用的连接工具是Xshell,可以使用它内置的XFtp来传输文件

在Linux中安装MySQL

在Linux中安装MySQL

安装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“

在Linux中安装MySQL

②查看是否安装成功

使用mysqladmin --version命令可以查看是否安装成功,如果安装成功会出现如下提示

在Linux中安装MySQL

也可以通过rpm -qa|grep mysql命令查看是否安装成功

在Linux中安装MySQL

③设置用户和密码

执行mysqladmin -u root password命令设置密码

如果报错请参考:在Linux中执行mysqladmin命令修改密码报错“mysqladmin: connect to server at ‘localhost‘ failed“

注意,如果是安装mysql5.7,那么会为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。

执行cat /var/log/mysqld.log | grep password命令查看临时密码是多少

在Linux中安装MySQL

然后使用这个临时密码登录进入mysql,在进入mysql之前要先启动mysql服务,这是后面会说明的,但这里要用下,注意不同版本的Linux系统执行的效果是不一样的,但都能看出来是否启动Mysql服务成功:

在Linux中安装MySQL

然后就可以通过该密码进行登录了

在Linux中安装MySQL

但这个密码太乱太复杂,需要进行更改,执行下面的SQL语句:

# 使用mysql数据库
use mysql;
# 修改密码,其中第一个root就是新密码,注意有些版本的MySQL的authentication_string是password字段,注意,根据版本来写,我的MySQL版本是5.7
update user set authentication_string=password('root') where user='root';
# 刷新修改
flush privileges;
# 退出MySQL
quit;

在Linux中安装MySQL

接着执行service mysqld restart命令重启MySQL服务

在Linux中安装MySQL

最后就可以用设置的新密码进行登录了

在Linux中安装MySQL

卸载MySQL

①使用rpm -qa|grep -i mysql命令查看安装了哪些mysql

在Linux中安装MySQL

②执行rpm -e --nodeps 包名命令进行卸载

在Linux中安装MySQL

再度查看就没有了

在Linux中安装MySQL

③查找之前的mysql文件夹并删除

在Linux中安装MySQL

并手动删除my.cnf

在Linux中安装MySQL

MySQL服务

MySQL服务的启动和停止

查看服务的状态:service mysqld status

在Linux中安装MySQL

启动服务:service mysqld start

在Linux中安装MySQL

停止服务:service mysqld stop

在Linux中安装MySQL

重启服务:service mysqld restart

在Linux中安装MySQL

启动后,查看进程

在Linux中安装MySQL

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默认是开机自启动的。

在Linux中安装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"。

在Linux中安装MySQL

当我们向表中插入中文数据时,直接报错,因为默认的字符集"latin1"中不包含中文字符,因此报错:

在Linux中安装MySQL

输入show variables like '%char%';命令查看数据库的字符集情况:

在Linux中安装MySQL

修改字符集

①修改配置文件

找到/etc/my.cnf配置文件,如果没有这个文件则从mysql安装目录下找到.cnf文件,然后复制到/etc/目录下,并改名为my.cnf,然后按照如下进行修改。

执行vi /etc/my.cnf命令进行配置文件的修改

修改处一:

在Linux中安装MySQL

修改处二:

在Linux中安装MySQL

保存退出,执行service mysqld restart命令重启mysql服务。

在Linux中安装MySQL

再进入mysql,执行show variables like '%char%';命令插入字符集是否修改成功。

在Linux中安装MySQL

现在就能插入中文字符成功

在Linux中安装MySQL

②修改已创建库、表字符集

# 修改数据库的字符集
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%';命令查看大小写是否敏感:

在Linux中安装MySQL

可以通过修改配置文件来设置大小写敏感:在/etc/my.cnf配置文件的[mysqld]下面添加lower_case_table_names=1,然后重启mysql服务即可。

在Linux中安装MySQL

保存退出后重启mysql服务

在Linux中安装MySQL

再次进入mysql查看

在Linux中安装MySQL

而关于lower_case_table_names参数的值有如下三种情况:

属性值 描述
0 大小写敏感
1 大小写不敏感。创建的表,数据库都是以小写形式存放在磁盘上,对于 sql 语句都是转换为小写对表和 DB 进行查找
2 创建的表和 DB 依据语句上格式存放,凡是查找都是转换为小写进行

注意:如果要设置属性为大小写不敏感,要在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名。在进行数据库参数设置之前,需要掌握这个参数带来的影响,切不可盲目设置。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月31日   52   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   31   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linuxbind
TEZNKK3IfmPf