1. 查看是否有自带的mysql,使用命令rpm -qa | grep mysql,结果如图
2. 删除自带的mysql,使用命令 rpm -e --nodeps +mysql的名字,第一步查到的名字如图
补充:网上说的find / -name mysql查看与mysql相关的配置,然后用rm -rf一个个的删除,我这里没用遇到,find / -name mysql就是空
3. 第二步删除了,没用任何提示,我们再次查看,确保已删除,如图,已经查不到mysql了,已成功删除
4. 下载mysql,官网下载,我用的是5.7.10版本
5. 把下载mysql上传到服务器,上传到/usr/local/mysql目录下,如果没有目录,请自行创建,Linux创建命令mkdir 文件夹名
6. 解压,解压命令tar -zxvf 文件 ,如图,等待压缩完成
7. 创建用户组,groupadd 用户名 ,输入两次,如果提示groupadd: group '用户组名' already exists
,表名创建成功如图
这里使用的命令是 groupadd mysql
8. 创建用户,并且分配用户组,设置权限,useradd 授权 用户组 用户名,如图:
这里使用的命令: useradd -r -g mysql mysql
9. 修改/etc/my.cnf文件,如果没用就新建,内容覆盖如下(先按insert键,输入完后按esc键,最后输入:wq保存)
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
#指定的是mysql 安装目录,一定要改为你的,不然后边启动不了
basedir=/usr/local/mysql/mysql-5.7.10-linux-glibc2.5-x86_64
#指定的是mysql数据目录 ,上一步新建的
datadir=/data/mysql
#mysql端口存放文件
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#skip_ssl #关闭SSL加密连接
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
# mysql在windows下,默认是对表名大小写不敏感的,但是在[linux下,一些系统需要手动设置
lower_case_table_names=1
#下面这个后边会用到
#skip-grant-tables #免密码登陆
10. 进入mysql安装的bin目录下,输入
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/mysql-5.7.10-linux-glibc2.5-x86_64 --datadir=/data/mysql/ --user=mysql --initialize
说明basedir和第9步basedir一致,datadir=第9步的datadir一致
这里网上说是会有初始密码的但是我的没有
启动mysql,网上说的把mysql目录下的/support-files/mysql.server复制到/etc/init.d/目录下,然后用server mysql start启动,但是我的报错
所以我用另外一种方式启动,就是 mysql目录下的/support-files/mysql.server start,我的环境路径是: /usr/local/mysql/mysql-5.7.10-linux-glibc2.5-x86_64/support-files/mysql.server start
出现Starting MySQL. [ OK ] 表示启动成功
11. 连接mysql,进入bin目录,输入命令 ./mysql -u root -p,但是这里没用密码,所以不管输入什么都不对,解决办法:
vi /etc/my.cnf
把skip-grant-tables放出来(去掉#号),然后重启mysql,使用ps -ef可以看到mysql的pid,然后 kill pid就行了,启动方法在11步,启动完后输入 ./mysql -u root连接数据库,出现mysql>就是连接上了mysql,修改密码,
flush privileges;
set password for root@localhost = password('123456');
flush privileges;
然后就可以了,然后记得去/etc/my.cnf去掉skip-grant-tables,在重新连接数据库就要密码了
12这样就完成了,看看有什么数据库吧,showdatabases
下一篇我们说说怎么远程连接myqsl