如果服务器上已经安装了一些服务,为了避免一些冲突,这时就不得不手动来进行操作,如果是一台新服务器,我非常推荐你安装宝塔面板,可以省去你很多时间去维护一些基本服务。
本次是通过rpm方式进行安装,网络不好可以在mysql官网下载安装包再进行安装
在手动安装mysql之前,我们先卸载服务器自带的mysql
查看已安装的mysql
rpm -qa |grep mysql
安装完会出现以下一些相关组件
未安装之前,先卸载之前默认的相关组件
rpm -e 组件名称
依次执行以下命令
wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
cd /etc/yum.repos.d/
vim mysql-community.repo
修改文件
把自己想下载的版本的enable设置为1,0表示关闭,有多种版本进行选择,因为我需要安装5.7版本的mysql,所有把enable设置为1,其他设置为0,mysql8.0以上的版本有些语法不支持了,比如group by等,想了解更详细的说明可以查看官网资料。
配置完后,开始安装mysql
yum -y install mysql-community-server
在安装过程中可能会出现安装失败问题
报错信息
未找到匹配的参数: mysql-community-server
错误:没有任何匹配
根据官网提供的安装步骤可知,在安装之前需要先禁用mysql模块
继续安装
yum module disable mysql
yum -y install mysql-community-server
安装完毕之后查看安装版本及启动mysql服务
mysql --version
systemctl start mysqld.service
systemctl status mysqld.service
获取系统默认生成的密码
grep 'temporary password' /var/log/mysqld.log
登录并修改默认密码
mysql -u root -p
mysql> set password = password('Test@123');
5.7默认密码安全策略较高,有需要的可以修改对应策略
8以上修改密码方式不同,如下
mysql> alter user 'root'@'localhost' identified by 'Test@123';
允许所有主机远程访问数据库
mysql> grant all privileges on *.* to '用户'@'%' identified by '密码' with grant option;
刷新权限
mysql> flush privileges;
连接测试
连接失败,防火墙开放3306端口,使用云服务器,安全组加上3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
到这里,以为就安装成功了吗?
事实上,在实际使用的过程中还会出现很多问题,例如mysql已存在的表,但是连接使用时,却报此表不存在,这是因为mysql安装的时候需要设置大小写是否敏感。列表查询报以下错误:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre...
添加数据乱码等等...
这些问题都是mysql配置没有指定而出现的,默认安装完mysql会在/etc目录下有my.cnf文件,修改
my.cn文件,在文件末尾添加以下配置,保存并退出
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
character_set_server=utf8
init_connect='SET NAMES utf8'
重新启动mysql服务
systemctl restart mysqld
以上出现的问题就都能解决啦
出现问题不要慌,总有前辈遇见过,祝所有的开发小伙伴都能快速的解决bug