linux系统mysql数据库安装

时间:2022-02-04 09:19:40

linux安装mysql服务分两种安装方法:

①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错;
②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右。以下介绍linux使用官方编译好的二进制包安装mysql。

安装包

mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
linux系统,32位、64位均可
下载地址:https://dev.mysql.com/downloads/mysql/
Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit)
附安装包:百度云链接: https://pan.baidu.com/s/1bphevyJ 密码: qvgz

检查该系统是否已安装mysql

1、执行命令 rpm -qa|grep mysql—如果出现安装包
2、执行命令service mysqld stop–关闭mysql服务
3、卸载mysql
删除语法: rpm -e <包的名字>
如果遇到依赖,无法删除,使用 rpm -e –nodeps <包的名字> 不检查依赖,直接删除rpm包。
4、通过find命令检查是否有安装mysql文件,有需要删除
find / -name mysql
删除语法: rm -rf 目录文件(或文件)

安装步骤

1、上传安装包mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz到指定目录下,如/usr/local
2、进入安装包所在目录cd /usr/local,执行命令:tar -xvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
3、重命名解压后的mysql-5.6.33-linux-glibc2.5-x86_64为mysql
4、暴力删除mysql用户
删除语法: userdel -r -f mysql(如果没有,会提示你mysql不存在,不用在意)
5、添加系统mysql组和mysql用户:
执行命令:
groupadd mysql //添加用户组mysql
useradd -r -g mysql mysql //添加用户mysql 到用户组mysql
6、进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./
7、安装数据库:进入mysql目录:cd /usr/local/mysql
执行命令 ./scripts/mysql_install_db –user=mysql

错误1:`Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).
已解决: ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql -datadir=/usr/local/mysql/data
错误2:-bash ./scripts/mysql_install_db:Permission denied.没有权限
解决:进入到scripts目录下,执行chmod 777 mysql_install_db
错误3:这里可能会报错:scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory
需要安装perl以及perl-devel.执行命令:yum –y install perl perl-devel

8、修改当前目录拥有者为root用户:执行命令 chown -R root:root ./
9、修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data
到此数据库安装完毕
10、添加开机启动mysql服务:
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
chmod +x /etc/init.d/mysql //赋予可执行权限
chkconfig –add mysql //添加mysql
chkconfig –list //显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig –level 345 mysql on
11、启动mysql服务
启动mysql服务:执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功。

连接mysql数据库

1、修改mysql的root用户密码,root初始密码为空的:
执行命令:./bin/mysqladmin -u root password ‘123456’(用户名:root,密码:123456)

错误:/usr/bin/mysqladmin: connect toserver at 'localhost' failed
error: 'Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock' (2)'
解决:
(1)先停止服务:service mysql stop
(2)通过find命令检查mysql.sock文件
find / -name mysql.sock (这里会显示mysql.sock路径)
(3)修改/etc/my.conf,在mysqld下添加socket路径:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock (这里路径为已有的mysql.sock路径,可能有多个,选择一个就可以)
user=mysql

2、执行/usr/local/mysql/bin/mysqld_safe& service mysql start
3、无密码root帐号登陆
/usr/bin/mysql -uroot -p 【注,在下面的要求你输入密码的时候,你不用管,直接回车键一敲就过去了】
Enter password:
Welcome to the MySQL monitor. Commandsend with ; or \g.
…………
Type ‘help;’ or ‘\h’ for help.Type ‘\c’ to clear the current input statement.
mysql> use mysql;
Database changed
4、 手动update修改密码

mysql> update user setpassword=password("新密码") where user='root' andhost='localhost';
Query OK, 1 row affected (0.00sec)
Rows matched: 1 Changed: 1 Warnings:0
mysql> flush privileges;
Query OK, 0 rows affected (0.00sec)
mysql> quit
Bye

5、正常重新启动mysql服务登录 mysql -uroot -p123456
6、把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql(具体用法是:ln -s 源文件 目标文件。)

启动和关闭mysql服务

(1)启动mysql服务:

执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,

(2)关闭mysql服务:

执行命令:service mysql start

(3)查看mysql状态

执行命令:service mysql status
MySQL running (26617)[ OK ] –运行正常

最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host’xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server“。解决办法如下:
(1)经查阅,错误原因是:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限。
于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限。
(2)首先远程连接进入服务器,在cms中输入mysql -u root -p,然后回车,输入密码后回车进入mysql命令行。
(3)输入use mysql;
(4)输入select user,password,host from user;
可以看到host中只有localhost主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。
(5)授权
grant all privileges on . to root@”xxx.xxx.xxx.xxx” identified by “123456”;
flush privileges;

启动mysql报错

1、service mysql start

错误:linux  MySQL is not running, but lock file (/var/lock/subsys/mysql) exists[FAILED]
解决:rm /var/lock/subsys/mysql

2、Starting MySQL…The server quit without updating PID file (/iflytek/mysql/data/mysql.pid).[FAILED]
解决:
(1)查看日志

080825 9:38:04 [ERROR] Can't start server : Bind on unix socket: Permission denied
080825 9:38:04 [ERROR] Do you already have another mysqld server running on socket: /var/mysql.sock ?
080825 9:38:04 [ERROR] Aborting

(2)查看配置文件 vim /etc/my.cnf
删除pid_file,socket,log配置,重启service mysql start成功
(3)service mysql status
MySQL running (19585)[ OK ]
(4)ps -ef|grep mysql
正常