在Linux系统中配置MySQL不仅可以提供高效稳定的数据库服务,还能为开发者和系统管理员提供强大的数据存储和处理能力
推荐工具:linux批量管理工具
本文将详细介绍如何在Linux系统中配置MySQL,并对其进行优化,以确保其性能和安全性
推荐工具:一键关闭windows 自动更新、windows defender(IIS7服务器助手)
一、准备工作 在开始配置MySQL之前,需要确保Linux系统满足以下要求: 1.系统要求:推荐使用64位的Linux发行版,如CentOS、Ubuntu等
2.存储空间:确保系统中有足够的存储空间用于安装MySQL及其数据文件
3.用户权限:以root用户或具有sudo权限的用户身份登录系统
此外,检查系统中是否已经安装了MariaDB(MySQL的一个分支),因为某些Linux发行版可能默认安装了MariaDB
如果已安装MariaDB,可以选择卸载它(视情况而定)
二、MySQL的安装 MySQL的安装可以通过系统包管理器(如yum)或手动下载压缩包进行安装
以下是两种方法的详细步骤: 1. 使用yum安装MySQL 1.下载MySQL: bash wget http://repo.mysql.com/mysql80-community-release-el7.rpm 2.安装MySQL: bash yum -y install mysql80-community-release-el7.rpm yum -y install mysql-community-server 3.启动MySQL服务: bash systemctl start mysqld systemctl status mysqld 4.获取初始密码: bash grep password /var/log/mysqld.log 5.修改密码: bash mysql -u root -p ALTER USER root@localhost IDENTIFIED BY new_password; 2. 手动安装MySQL 1.下载MySQL安装包:从MySQL官方网站下载安装包,并上传到/opt目录下
2.解压安装包: bash cd /opt tar -zxvf mysql-VERSION.tar.gz mv mysql-VERSION mysql 3.创建数据文件夹: bash mkdir /opt/mysql/data 4.创建Linux用户: bash useradd mysql 5.初始化MySQL数据库: bash /opt/mysql/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data 6.启动MySQL服务: bash /opt/mysql/bin/mysqld_safe --user=mysql & 7.查看临时密码: bash grep temporary password /var/log/mysqld.log 8.使用临时密码登录并设置新密码: bash mysql -uroot -p ALTER USER root@localhost IDENTIFIED BY new_password; 三、MySQL的配置与优化 1. 修改配置文件 MySQL的配置文件通常位于/etc/my.cnf(或/etc/mysql/my.cnf)
在配置文件中,可以设置MySQL的字符集、端口、数据目录等参数
例如,设置字符集为utf8mb4: 【mysqld】 character_set_server=utf8mb4 2. 设置字符集 MySQL存在四个级别的字符集:服务器级别、数据库级别、表级别和列级别
优先级为列>表>数据库>服务器
如果优先级高的没有设置字符集,那么默认使用它上一级的字符集
修改服务器级别的字符集: 编辑/etc/my.cnf文件,在【mysqld】标签下加入`character_set_server=utf8`,然后重启MySQL服务
修改数据库级别的字符集: sql ALTER DATABASE dbtest1 CHARACTER SET utf8; 修改表级别的字符集: sql ALTER TABLE test1 CONVERT TO CHARACTER SET utf8; 修改列级别的字符集: sql ALTER TABLE test1 MODIFY name VARCHAR(1 CHARACTER SET utf8; 3. 配置SQL大小写规范 在SQL中,关键字(如SELECT、WHERE等)以及函数名(如ABS、ROUND等)是不区分大小写的
然而,Linux对大小写是敏感的,而Windows默认对大小写不敏感
查看大小写敏感性: sql SHOW VARIABLES LIKE %lower_case_table_names%; 配置大小写敏感性: 在MySQL配置文件中设置`lower_case_table_names`的值
0表示大小写敏感,1表示不敏感(创建的数据库和表以小写形式存放),2表示按照创建时的大小写进行存放
4. 配置sql_mode sql_mode会影响MySQL支持的语法以及数据校验的严格性
查看sql_mode: sql SHOW VARIABLES LIKE sql_mode; 修改sql_mode: 可以在MySQL配置文件中设置,也可以在MySQL命令行中临时修改(仅对当前会话有效)
sql SET GLOBAL sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION; 5. 配置远程访问 默认情况下,MySQL仅允许本地访问
如果需要远程访问,需要修改MySQL的配置文件
编辑MySQL配置文件: bash vim /etc/mysql/my.cnf 修改bind-address: 将`bind-address`设置为`0.0.0.0`或服务器的公共IP地址
重启MySQL服务: bash systemctl restart mysqld 6. 配置环境变量 为了方便在命令行中访问MySQL,可以将MySQL的bin目录添加到系统的PATH环境变量中
编辑环境变量文件: bash vim /etc/profile 添加MySQL的bin目录到PATH: bash export PATH=$PATH:/opt/mysql/bin 使配置生效: bash source /etc/profile 四、MySQL的安全与优化 1. 定期备份数据库 定期备份数据库是非常重要的,可以使用mysqldump命令进行备份和恢复
备份数据库: bash mysqldump -u username -pdatabase_name > backup.sql 恢复数据库: bash mysql -u username -p database_name < backup.sql 2. 创建和管理用户 为了安全性考虑,建议创建一个新的用户,并限制其权限
创建新用户: sql CREATE USER username@localhost IDENTIFIED BY password; 授予权限: sql GRANT ALL PRIVILEGES ON database_name. TO username@localhost; FLUSH PRIVILEGES; 3. 检查和修复表 定期检查和修复表可以确保数据库的健康和完整性
检查表: sql CHECK TABLE table_name; 修复表: sql REPAIR TABLEtable_name; 五、总结 通过以上步骤,我们可以在Linux系统中成功配置MySQL,并进行优化和安