介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&make install呢。
Step1. 为centos配置rpmforge及epel源。centos官方的源其实也够用,不过像php的一些扩展如php-mcrypt在官方源中并没有。
rpmforge源可以在 http://pkgs.repoforge.org/rpmforge-release/中下载安装,名为rpmforge- release-*.i686.rpm 或 rpmforge-release-*.x86_64.rpm,找最新的版本
epel源可以在http://mirrors.ustc.edu.cn/Fedora/epel/6/ 中找到,32系统在i386文件夹中,64位的在x86_64文件夹中,名为epel-release-6-*.noarch.rpm,找最新的版本
这里以32位系统为例子,
#如果提示The requested URL returned error: 404,请自行换成最新的版本
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
rpm -ivh http://download.Fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
Step 2. 安装php/mysql/httpd
#安装apache
yum -y install httpd httpd-devel
#安装mysql
yum -y install mysql mysql-devel mysql-server mysql-libs
#安装php
yum -y install php
#安装php扩展
yum -y install php-mysql php-gd php-imap php-ldap php-odbc php-mbstring php-devel php-soap php-cli php-pdo
yum -y install php-mcrypt php-tidy php-xml php-xmlrpc php-pear
#其它不常用php扩展, www.linuxidc.com 可不用安装
yum -y install php-pecl-memcache php-eaccelerator
#安装phpmyadmin
yum -y install phpmyadmin
#安装完成之后,启动
service httpd start
service mysqld start
Step 3.配置httpd、mysqld开机自启动
chkconfig mysqld on
chkconfig httpd on
Step 4.配置phpmyadmin
修改/usr/share/phpmyadmin/config.inc.php
#将这里abcde文字修改为自己的字符,可任意
$cfg['blowfish_secret'] = 'abcde';
常见问题
1. phpmyadmin提示未开启php-mcrypt,这是因为没有安装php-mrcrpt扩展。在官方源没有php-mrcrpt扩展,请安装epel源后再yum install php-mcrypt
2. phpmyadmin无法访问
phpmyadmin默认只能使用http://localhost/phpmyadmin来访问,可以修改/etc/httpd/conf.d/phpmyadmin.conf中对应部分为
<Directory "/usr/share/phpmyadmin">
Order Deny,Allow
# Deny from all
Allow from All
</Directory>
不过强烈不支持这么做的,把phpmyadmin暴露了不安全
注意:
apache解析php,修改/etc/httpd/conf/httpd.conf文件,添加
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps
myql可以远程登录
设置mysql密码
mysql>; USE mysql;
mysql>; UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql>; FLUSH PRIVILEGES;
允许远程登录
mysql -u root -p
Enter Password: <your new password>
mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
%为服务ip地址。完成后就能用mysql-front远程管理mysql了。
设为开机启动:
chkconfig mysqld on
改变phpMyAdmin的认证方式,从cookie改成http:
vi /usr/share/phpmyadmin/config.inc.php
$cfg['Servers'][$i]['auth_type'] = ‘http’;
mysql8.0.1/mysql5.7.22+centos7
到mysql官网下载mysql编译好的二进制安装包mysql-8.0.11-el7-x86_64.tar.gz或者mysql-5.7.22-el7-x86_64.tar.gz:
https://dev.mysql.com/downloads/mysql/
执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
添加系统mysql组和mysql用户:执行命令:groupadd mysql和useradd -r -g mysql mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql /usr/local/mysql
一、初始化
两人个目录:
[op@bogon mysql]$ sudo ./bin/mysqld --initialize --datadir=/home/common/mysql_data --basedir=/usr/local/mysql --user=mysql
2017-05-22T08:30:22.883996Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-05-22T08:30:29.067756Z 1 [Warning] InnoDB: New log files created, LSN=49311
2017-05-22T08:30:29.646311Z 1 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-05-22T08:30:51.896704Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f72682a6-3ec8-11e7-b3cc-60029262302a.
2017-05-22T08:30:52.046511Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-05-22T08:30:52.175803Z 4 [Note] A temporary password is generated for root@localhost: krETk&zlR0!y
确定配置文件中以下内容是否为你的mysql安装的路径:
pid-file
user
socket
port
basedir
datadir
Could not create unix socket lock file /var/run/mysql/mysql.sock.lock。这种错误一般都是目录不存在或者权限不足,所以我们直接使用命令 mkdir -p /var/log/mysql/ 创建该目录即可,然后可以设置目录权限 chown -R mysql:mysql /var/log/mysql/ 。
my.cnf中目录结尾不要加/
二、启动mysql实例
初始化完成后,就开始准备启动,启动还保持着原来的方式,可以使用mysqld_safe启动,所以参数基本差不多。
sudo ./bin/mysqld_safe --basedir=/usr/local/mysql/ --datadir=/home/common/mysql_data/ --user=mysql
然后命令:/usr/local/mysql/support-files/mysql.server start,启动mysql数据库。
最后修改root密码:
# mysql -u root -p ---连接mysql,输入初始化时生成的密码
mysql> alter user root@localhost identified by 'password';
启动时指定mysql.sock是不是在那个位置,
/usr/local/mysql/bin/mysql -uroot -p -S /var/lib/mysql/mysql.sock
提示这个错误,表示没设置client的mysql.sock:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock
在my.cnf添加以下两行:
[client]
socket=/var/lib/mysql/mysql.sock
grant all privileges on *.* to username@"%" identified by 'password' with grant option;
FLUSH PRIVILEGES;
打开3306端口:
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
13.设置开机自启
以后可以使用service命令控制mysql的启动和停止,命令为:service mysqld start和service mysqld stop,有可能执行的时候会报错,如下图
这是因为mysql默认安装在/usr/local目录下,如果安装在/usr/local目录下则会正常启动和关闭,不会报错。但是本次安装在自定义的/data目录下,此时需要修改/etc/init.d/mysqld文件,保存后退出
然后在执行service mysqld start启动命令,OK
再执行service mysqld stop关闭命令,OK
14.配置全局环境变量
编辑/etc/profile文件
# vi /etc/profile
在profile文件底部添加如下两行配置,保存后退出
PATH=/data/mysql/bin:/data/mysql/lib:$PATH
export PATH
设置环境变量立即生效
# source /etc/profile
15.设置远程主机登录
远程登录失败
查看3306端口是否已开放
# netstat -nupl|grep 3306
开放3306端口并重启防火墙
再次远程登录,成功
出错一:ERROR 1862 (HY000): Your password has expired. To log in you must change
解决方法:
1、 用忽略授权表的方法进入mysql
1
2
3
4
|
vi /etc/my.cnf
[mysqld] skip- grant -tables
:wq! #保存退出 |
2、进入mysql,查看root用户的详细信息
1
2
3
|
# mysql -u root -p
> use mysql
> select * from mysql. user where user = 'root' \G
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
*************************** 1. row *************************** Host: localhost
User : root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *AC241830FFDDC8943AB31CBD47D758E79F7953EA
password_expired: N
password_last_changed: 2015-11-11 16:52:49
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec)
|
3、把password_expired 改成不过期
1
2
3
|
> update user set password_expired= 'N' where user = 'root' ;
> flush privileges ;
> quit
|
4、把 /etc/my.cnf 的 skip-grant-tables 这行注释掉
5、重启服务
1
|
#service mysql restart
|
6、再次登陆 mysql 就正常了
或者:
./mysqladmin -uroot -p password
Enter password: //这里输入上面的v:gNXSw5FTkw
New password: //重新输入新密码
Confirm new password: //重新输入新密码
出错二:
mysqld_safe启动报错 mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable
报错(如下),但是使用mysqld直接启动没有问题。
- 150718 00:03:38 mysqld_safe Logging to '/var/log/mysqld.log'.
- 150718 00:03:38 mysqld_safe The file /usr/local/mysql/bin/mysqld
- does not exist or is not executable. Please cd to the mysql installation
- directory and restart this script from there as follows:
- ./bin/mysqld_safe&
- See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information
- [1]+ Exit 1 mysqld_safe --skip-grant-tables --user=mysql
说明:mysqld_safe启动脚本默认的从/usr/local/mysql目录中读取另外一个启动脚本mysqld,因为我的安装目录为/home/mysql/product/5.6/mysql-1。所以找不到相关文件。可以从两个方面解决。
方法一:在/usr/local/mysql创建链接文件
- mkdir -p /usr/local/mysql/bin
- ln -s /home/mysql/product/5.6/mysql-1/bin/mysqld /usr/local/mysql/bin/mysqld
方法二:将mysqld_safe中的所有/usr/local/mysql目录改为自己实际的安装目录
- <pre name="code" class="sql">sed -i 's#/usr/local/mysql#/home/mysql/product/5.6/mysql-1#g' /home/mysql/product/5.6/mysql-1/bin/mysqld_safe
出错三:在ubuntu上安装mysql5.6版本后,执行/usr/local/mysql/bin/mysqld_safe ,运行mysql提示如下信息:
[error] Can’t find messagefile ‘/usr/share/mysql/errmsg.sys’
将share/english/errmsg.sys 拷贝到 /usr/share/mysql/下。
sudo cp /usr/local/mysql/share/english/errmsg.sys /usr/share/mysql/
重新执行即可。
windows mysql安装、配置
一、MySQL的下载:
上图中,我们选择红框部分的社区版本进行下载,MySQL支持许多平台:
我的操作系统是64位的,选择对应版本MSI版下载,弹出login界面, 选择no thanks,just start my download直接下载即可:
二、MySQL的安装:
软件下载完成后,就开始安装吧。
上图中,建议选择第二项的Custom,自定义安装。弹出如下界面:
三、MySQL的配置:
上图的解释:今后在Java开发中,要对这个服务器进行访问,就要涉及到通信的协议,这里使用TCP/IP协议,此时就涉及到了端口,MySQL默认的端口号为3306,使用默认的即可。继续下一步:
上图中,是选择数据库的编码。第一种是拉丁文,只支持英文,不支持中文;第二种貌似是和日语有关的。这里我们选择第三种:自定义。然后将编码方式设置为:utf-8。下一步:
上图中,我们勾选“路径添加到环境变量”,然后继续:
上图中,是给root用户设置密码。这里,我将密码设置为smyh。另外,勾选“允许用户远程(网路)访问”,否则只能在本地访问,继续:
上面的勾会自动打的:
上图中,可以看到,我们的配置被写在了my.ini这个文件中了。
点击finish,完成安装。我们再到对应目录下看一下my.ini文件的内容:
同时,我们在开始菜单的程序中也能看到已经安装好的程序了:
点击它,开始运行:
打开”计算机管理“可以看到MySQL的服务已启动:
同时在进程中也可以看到:
四、MySQL的卸载:
1、到控制面板里面先把mysql软件删除;
2、删除mysql的安装目录(如果在其他盘还有设置目录也要删除,空目录也要删除);
3、删除注册表中的以下文件:(按"Win+R"键,输入regedit,进入注册表):
- HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
- HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
- HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL
有的话全部删除(技巧:用F3循环查找“mysql”);
4、如果是windows 7 系统,还需要找到C:\ProgramData\MYSQL将其删除;如果是XP系统,删除找到C:\Documents and Settings\All Users\Application Data\MYSQL
完成后即可再次安装,不需要重启系统。