Linux安装mysql
澳门新浦金网站,一. 指定路径
在上一篇里,二进制包解压后,全部放入在/usr/local/mysql目录下,在安装时指定了基础目录和数据目录, --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 。
--有些文件在安装,是没有指定路径,安装后默认分布如下:
错误消息文件和字符集文件(share/mysql)。
my.cnf(/etc/my.cnf)。
socket=/var/lib/mysql/mysql.sock。
--my.cnf里的配置
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid。
--网上查了资源,在安装时可以指定路径 如下所示:
[root@hsr bin]# ./mysqld
--defaults-file=/usrl/local/mysql/etc/my.cnf
--socket=/var/run/mysqld/mysqld.sock
--log-error=/var/log/mariadb/mariadb.log
--pid-file=/var/run/mariadb/mariadb.pid
--initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Linux是建议第三方软件放在/opt下。官网文档 Initializing the Data Directory Manually Using mysqld
我linux是redhat enterparise 6.0 ,32位的.
二 . MYSQL二进制安装目录
二进制安装目录 |
rpm安装目录 |
二进制目录说明 |
bin客户端程序和mysqld服务器 |
/usr/bin(客户端程序和脚本) |
/usr/local/mysql/bin 在上一篇里的"七 登录mysql"里做了文件映射。 ln -s /usr/local/mysql/bin/mysql /usr/bin |
Data日志文件和数据文件 |
/var/lib/mysql(日志文件和数据库) |
这里安装时自定义在/usr/local/mysql/data下。 |
Docs 文档和ChangeLog |
|
/usr/local/mysql/docs |
Include 包含(头)文件lib(库文件) |
|
/usr/local/mysql/include,/usr/local/mysql/lib |
share/mysql 错误消息文件和字符集文件 |
|
/usr/share/mysql (默认路径) |
linux安装mysql有两种方式,一种是tar包的形式,这种方式是通过源码自行变异安装,适合高级用户定制MySQL的特性。是通过编译过的二进制文件进行安装。一种是rpm包的形式,安装进程会自动完成系统的相关配置。tar包的形式就有点复杂,比rpm的复杂。个人建议是用rpm包进行安装,方便。
三. 重启系统后登录报错
-- 错误信息如下:
[root@hsr ~]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:
1. 在my.cnf里指定socket=/tmp/mysql.sock
2. 启动mysql
[root@hsr ~]# service mysql start
Starting MySQL.. SUCCESS!
3.再登录mysql OK
[root@hsr ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.23 MySQL Community Server (GPL)
下载安装包:
1.官网地址:http://www.mysql.com/downloads/
将显示:
进行选择linux的相应的版本下载即可。
a.如果你下的是tar包的话,按如下方式安装(个人建议用rpm的方式):
下载tar包,检查你的linux上是否安装了mysql相关的lib,如有将其卸载。
#rpm -qa|grep -i mysql
卸载:
#rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps,
之后是否卸载成功,输入rpm -qa|grep -i mysql 进行相应的查看。
b.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组。
#groupadd mysql
#useradd -r -g mysql mysql
*useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
c. 将二进制文件解压到指定的安装目录,我们这里指定为/usr/local
# cd/usr/local/
#tar -zxvf mysql-********.tar.gz,解压你的mysql包。
d.进入mysql文件夹,也就是mysql所在的目录,并更改所属的组和用户。
#cd mysql
#chown -R mysql .
#chgrp -R mysql .
e. 执行mysql_install_db脚本,对mysql中的 data目录进行初始化并创建一些系统表格。注意mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是 我们之前设置的mysql用户)执行这个脚本,或者用root执行,但是加上参数--user=mysql。
[root@localhost mysql]scripts/mysql_install_db --user=mysql
*如果mysql的安装目录(解压目录)不是/usr/local/mysql,那么还必须指定目录参数,如
[root@localhost mysql]scripts/mysql_install_db --user=mysql
--basedir=/opt/mysql/mysql
--datadir=/opt/mysql/mysql/data
*将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
[root@localhost mysql]chown -R root .
[root@localhost mysql]chown -R mysql data
f. 复制配置文件
[root@localhost mysql] cp support-files/my-medium.cnf /etc/my.cnf
g. 将mysqld服务加入开机自启动项。
*首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。
[root@localhostmysql] cp support-files/mysql.server /etc/init.d/mysqld
*通过chkconfig命令将mysqld服务加入到自启动服务项中。
[root@localhost mysql]#chkconfig --add mysqld
*注意服务名称mysqld就是我们将mysql.server复制到/etc/init.d/时重命名的名称。
*查看是否添加成功
[root@localhost mysql]#chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
h. 重启系统,mysqld就会自动启动了。
*检查是否启动
[root@localhost mysql]#netstat -anp|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2365/mysqld
unix 2 [ ACC ] STREAM LISTENING 14396 2365/mysqld /tmp/mysql.sock
*如果不想重新启动,那可以直接手动启动。