1. 准备安装
检查是否安装了mariadb
# 检索是否安装了mariadb
[root@admin]# rpm -qa | grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
# 卸载mariadb
[root@admin]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
mariadb-libs-5.5.52-1.el7.x86_64
删除配置文件:
rm /etc/my.cnf
2. 开始安装
官网下载MySQL Community Server 5.5.62地址: https://dev.mysql.com/downloads/mysql/5.5.html#downloads
一定要选择Linux Generic版本
3. sftp上传到CentOS中
4. 复制文件到 /usr/local 后 解压
# 转移到usr的local下
mv mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz /usr/local
# 解压
tar -xvf mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
5.在usr/local下修改文件夹名称
mv mysql-5.5.62-linux-glibc2.12-x86_64 mysql-5.5.62
6. 修改my.cnf配置文件
vi /etc/my.cnf
将以下内容添加到my.cnf
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve #设置3306端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 设置mysql的安装目录, 这里的目录一定要是你解压后并且改了名的目录哟.. basedir=/usr/local/mysql-5.5.62 # 设置mysql数据库的数据的存放目录, 这里的目录一定要是你解压后并且改了名的目录哟.. datadir=/usr/local/mysql-5.5.62/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_name=1 max_allowed_packet=16M
7. 切换目录到mysql中
cd /usr/local/mysql-5.5.62
8. 添加用户组与用户, 这里需要将目录切换到mysql目录下执行
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql ./
9. 安装mysql
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.5.62/ --datadir=/usr/local/mysql-5.5.62/data/
结果如图
10. 配置MySQL
chown -R mysql:mysql data
chown 777 /etc/my.cnf
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
11. 开启服务
service mysqld start
此时报错
使用service mysqld start 运行命令报错
Starting MySQL.Logging to '/usr/local/mysql-5.5.62/data/localhost.localdomain.err'.
210330 11:25:00 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/usr/local/mysql-5.5.62/data/localhost.localdomain.pid).根据cat /usr/local/mysql-5.5.62/data/localhost.localdomain.err 查看错误原因
结合先前写入配置/etc/my.cnf:
根据上面的报错信息可知
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
“var/lib/mysql”目录不存在,执行创建命令:
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
service mysqld start
到此开启服务命令成功
12. 配置PATH
vi ~/.bash_profile
在文件最后面加入以下内容
export PATH=$PATH:/usr/local/mysql-5.5.60/bin
13. 刷新PATH
source ~/.bash_profile
14. 登录mysql, 这时mysql没有密码, 当出现Enter password:时直接回车
mysql -uroot -p
执行上述命令时,遇到-bash:mysql:command not found
原因:由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:# ln -s /usr/local/mysql/bin/mysql /usr/bin
以下是补充:
linux下,在mysql正常运行的情况下,输入mysql提示:
mysql command not found遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:
把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:
# cd /usr/local/bin
# ln -fs /MYSQLPATH/bin/mysql mysql还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。
注:其中MYSQLPATH是mysql的实际安装路径我当前安装目录是/usr/local/mysql-5.5.62/bin,需要映射到/usr/local/bin目录下:
#cd /usr/local/bin
#ln -s /usr/local/mysql-5.5.62/bin/mysql /usr/local/bin
完毕
15 修改root密码
mysql> use mysql mysql> update user set password=password('需要设置的密码') where user='root' and host='localhost'; mysql> flush privileges;
16. 设置远程登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '刚才设置的root密码' WITH GRANT OPTION;
到此所有配置全部完毕. 你可以使用sqlyog或者其他方式登录mysql了