linux安装mysql5.7
Linux系统(七):安装MySQL(2021最新最详细) - 净重21克 - 博客园 (cnblogs.com)
解压软件包
查看是否安装过MySQL
rpm -qa | grep -i mariadb CentOS7使用这个
-i忽略大小写
卸载MySQL; --nodeps 排除依赖,否则别的软件依赖mysql,无法删除
rpm -e --nodeps mariadb-libs
检查/tmp临时目权限;chmod -R 777 /tmp
执行安装命令前,先执行查询命令检查依赖
rpm -qa|grep libaio
rpm -qa|grep net-tools
如果不存在需要到centos安装盘里进行rpm安装。安装linux如果带图形化界面,这些都是安装好的。
将安装程序拷贝到/opt目录下
在mysql的安装文件目录下执行:(必须按照顺序执行)
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rp
查看mysql版本
- 执行 mysqladmin --version命令,类似java -version如果打出消息,即为成功
- 执行rpm -qa|grep -i mysql命令,查看是否安装成功,需要增加 -i 不用去区分大小写,否则搜索不到。
服务的初始化
- 为了保证数据库目录为与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:
- mysqld --initialize --user=mysql
- 另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码
查看密码:cat /var/log/mysqld.log
启动mysql,并查看状态(加不加.service后缀都可以)
- 启动:systemctl start mysqld.service
- 关闭:systemctl stop mysqld.service
- 重启:systemctl restart mysqld.service
- 查看状态:systemctl status mysqld.service
- 查看进程:ps -ef | grep -i mysql
查看mysql服务是否自启动(默认自启动)
systemctl list-unit-files|grep mysqld.service
- 如不是enabled可以运行如下命令设置自启动
systemctl enable mysqld.service
- 如果希望不进行自启动,运行如下命令设置
systemctl disable mysqld.service
首次登录
- 通过 mysql -uroot -p进行登录,在Enter password:录入初始化密码 建议密码使用引号包裹
修改密码
- 因为初始化密码默认是过期的,所以查看数据库会报错
修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 但新密码太简单会报错
字符集问题
- 默认latin1字符编码,不支持中文
show variables like '%char%';
- 保存中文报错
- 修改字符集
- vim /etc/my.cnf
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci
|
- 重新启动mysql
systemctl restart mysqld
- 已生成的库表字符集如何变更
- 以前创建的库,创建的表字符集还是latin1
- 修改以前数据库的字符集
alter database mydb character set 'utf8';
- 修改以前数据表的字符集
alter table mytbl convert to character set 'utf8';
- 但是原有的数据如果是用非'utf8'编码的话,数据本身编码不会发生改变。
- 已有数据需要导出或删除,然后重新插入。
查看字符集
show variables like 'character%';
show variables like '%char%';
确认MySQL中已经有可以通过远程登录的账户
select * from mysql.user where user='root' and host='%';
如果没有用户,先执行如下命令
grant all privileges on *.* to root@'%' identified by 'root';
测试连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY