ubuntu mysql 5.0_Ubuntu 1204    Mysql Server 5.0  数据库和表的操作

|

+--------------------+

5 rows in set (0.00 sec)

mysql>

本文详细介绍Ubuntu下MySQL数据库安装后初步设置。

1、安装MySQL 这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。

2、配置MySQL

注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!

默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入: $mysql -u root 在这里之所以用-u

root是因为我现在是一般用户(firehare),如果 不加-u

root的话,mysql会以为是firehare在登录。

注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO

root@localhost IDENTIFIED BY "123456";

注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。

我这里就以xoops为例:

mysql>CREATE DATABASE xoops;

mysql>

GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost

IDENTIFIED BY "654321";

这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。

如果你想进行远程访问或控制,那么你要做两件事:

其一:

mysql>GRANT ALL PRIVILEGES ON xoops.* TO

xoops_root@"%" IDENTIFIED BY "654321";

允许xoops_root用户可以从任意机器上登入MySQL。

其二:

$sudo gedit /etc/mysql/my.cnf >skip-networking

=> # skip-networking

这样就可以允许其他机器访问MySQL了。

在Ubuntu下连接数据库的GUI软件:mysql-admin mysql-query-browser。

dapper升级到MySQL5+PHP5出现乱码的处理办法问题发生在采用gbk为网站内码的数据。

一:导出数据:

mysqldump -uroot -p --default-character-set

=latin1 --set-charset=gbk --skip-opt mydatabse >

d.sql

二:建立新的数据库:

CREATE DATABASE `newmydatabase` DEFAULT

CHARACTER SET gbk COLLATE gbk_chinese_ci;

三:重新导入数据:

mysql -uroot -p --default-character-set=

gbk -f newmydatabase >source d.sql .....

>exit

1.在终端启动:mysql -uroot

-p密码 然后回车;

2.查看数据库的名字:SHOW

DATABASES;;

3.选择一个数据库:USE

test_STinfo;;(今天总是SELECT,惭愧。)

4.查看已选择数据库中表的名字:SHOW

TABLES;;

5.查看表的详细情况:DESC

T_teacher;;

a4c26d1e5885305701be709a3d33442f.png

6.创建一个数据库:CREATE

DATABASE test_51cto;;

7.(USE test_51cto)创建表:CREATE

TABLE test_table(51ctoID INT(8)PRIMARY KET NOT NULL,

51ctoName VARCHAR(20)NOT

NULL);;

8.修改表(增加列):ALTER TABLE

test_table ADD 51ctoScore INT(8) NOT NULL;;

9.修改表(修改列):ALTER TABLE

test_table MODIFY 51ctoScore DOUBLE(8,1) NOT NULL;;

10.修改表(删除列):ALTER TABLE

test_table DROP 51ctoScore;;

11.删除一个数据库:DROP DATABASE

test_51cto;;

a4c26d1e5885305701be709a3d33442f.png

12.退出mysql:exit;(全文的语句只有这不用分号,

a4c26d1e5885305701be709a3d33442f.png)。

To find the Ubuntu Server Guide related to your

specific version, please go to: https://help.ubuntu.com/, select

your Ubuntu Server version and then click on Ubuntu Server

Guide. For the latest version (11.04) of Ubuntu Server,

please go to https://help.ubuntu.com/11.04/serverguide/C/httpd.html

This is to help people setup and install a

LAMP

(Linux-Apache-MySQL-PHP)

server in Ubuntu, including Apache 2, PHP 5 and MySQL 4.1 or 5.0.

To

install the default LAMP stack in Ubuntu 10.04 and above

First install tasksel...

sudo apt-get install tasksel

... and then the LAMP stack:

sudo tasksel install lamp-server

See Tasksel - be

warned, only use tasksel to install tasks, not to remove them - see

https://launchpad.net/bugs/574287

Starting over:

How to remove the LAMP stack

To remove the LAMP stack remove the following

packages:

Note: This assumes you have no other programs that require any

of these packages. You might wish to simulate this removal first,

and only remove the packages that don't cause removal of something

desired.

apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql

To also remove the debconf data, use the purge

option when removing. To get rid of any configurations you may have

made to apache, manually remove the /etc/apache2 directory once the

packages have been removed.

Installing Apache 2

To only install the apache2 webserver, use

any

method to install

apache2

It requires a restart for it to work

sudo /etc/init.d/apache2 restart

Checking Apache 2

installation

With your web browser, go to the URI

http://localhost : if you read "It works!", which

is the content of the file /var/www/index.html , this proves Apache

works.

Troubleshooting Apache

If you get this error:

apache2: Could not determine the server's

fully qualified domain name, using 127.0.0.1 for ServerName

then use a text editor such as "sudo nano" at

the command line or "gksudo gedit" on the desktop to create a new

file,

sudo nano /etc/apache2/conf.d/fqdn

or

gksu "gedit /etc/apache2/conf.d/fqdn"

then add

ServerName localhost

to the file and save. This can all be done in a

single command with the following:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Virtual Hosts

Apache2 has the concept of sites, which are

separate configuration files that Apache2 will read. These are

available in /etc/apache2/sites-available. By default,

there is one site available called default this is what

you will see when you browse to http://localhost or http://127.0.0.1. You can have many

different site configurations available, and activate only those

that you need.

As an example, we want the default site to be

/home/user/public_html/. To do this, we must create a new

site and then enable it in Apache2.

To create a new site:

Copy the default website as a starting point.

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite

Edit the new configuration file in a text editor

"sudo nano" on the command line or "gksudo gedit", for example:

gksudo gedit /etc/apache2/sites-available/mysite

Change the DocumentRoot to point to the

new location. For example, /home/user/public_html/

Change the Directory directive, replace

to

You can also set separate logs for each

site. To do this, change the ErrorLog and

CustomLog directives. This is optional, but handy if you

have many sites

Save the file

Now, we must deactivate the old site, and

activate our new one. Ubuntu provides two small utilities that take

care of this: a2ensite

(apache2enable

site) and a2dissite

(apache2disable

site).

sudo a2dissite default && sudo a2ensite mysite

Finally, we restart Apache2:

sudo /etc/init.d/apache2 restart

If you have not created

/home/user/public_html/, you will receive an warning

message

To test the new site, create a file in

/home/user/public_html/:

echo 'Hello! It is working!' > /home/user/public_html/index.html

Finally, browse to http://localhost/

Installing PHP 5

To only install PHP5. use any

method to install the package

libapache2-mod-php5

Enable this module by doing

sudo a2enmod php5

which creates a symbolic link

/etc/apache2/mods-enabled/php5 pointing to

/etc/apache2/mods-availble/php5 .

Except if you use deprecated PHP code beginning

only by "" instead of "<?php "

(which is highly inadvisable), open, as root, the file

/etc/php5/apache2/php.ini , look for the line

"short_open_tag = On", change it to

"short_open_tag = Off" (not including the quotation marks) and add

a line of comment (beginning by a semi-colon) giving the reason,

the author and the date of this change. This way, if you later want

some XML or XHTML file to be served as PHP, the

"<?xml " tag will be ignored by PHP instead of being

seen as a PHP code mistake.

Relaunch Apache 2 by

sudo service apache2 restart

Checking PHP 5

installation

In /var/www , create a text file called

"test.php", grant the world (or, at least, Ubuntu user "apache")

permission to read it, write in it the only line:

"<?php phpinfo(); ?>" (without the

quotation marks) then, with your web browser, go to the URI

"http://localhost/test.php": if you

can see a description of PHP5 configuration, it proves PHP 5 works

with Apache.

Troubleshooting PHP 5

Does your browser ask if you want to

download the php file instead of displaying it? If

Apache is not actually parsing the php after you restarted it,

install libapache2-mod-php5. It is installed when you

install the php5 package, but may have been removed

inadvertently by packages which need to run a different version of

php.

If

sudo a2enmod php5

returns "$ This module does not exist!", you should purge (not just

remove) the libapache2-mod-php5 package and reinstall it.

Be sure to clear your browser's cache before

testing your site again. To do this in Firefox 4: Edit →

Preferences … Privacy → History: clear your recent history →

Details : choose "Everything" in "Time range to clean" and check

only "cache", then click on "Clear now".

Remember that, for Apache to be called, the URI

in your web browser must begin with "http://". If it begins with "file://", then the file is read directly by the browser,

without Apache, so you get (X)HTML and CSS, but no PHP. If you

didn't configure any host alias or virtual host, then a local URI

begins with "http://localhost", "http://127.0.0.1" or http://" followed by your IP number.

If the problem persists, check your PHP file

authorisations (it should be readable at least by Ubuntu user

"apache"), and check if the PHP code is correct. For instance, copy

your PHP file, replace your whole PHP file content by

"<?php phpinfo(); ?>" (without the

quotation marks): if you get the PHP test page in your web browser,

then the problem is in your PHP code, not in Apache or PHP

configuration nor in file permissions. If this doesn't work, then

it is a problem of file authorisation, Apache or PHP configuration,

cache not emptied, or Apache not running or not restarted. Use the

display of that test file in your web browser to see the list of

files influencing PHP behaviour.

Installing MYSQL with PHP

5

Use any

method to install

mysql-server libapache2-mod-auth-mysql php5-mysql

After installing PHP

You may need to increase the memory limit that

PHP imposes on a script. Edit the /etc/php5/apache2/php.ini file

and increase the memory_limit value.

After installing MySQL

Set mysql bind address

Before you can access the database from

other computers in your network, you have to change its

bind address. Note that this can be a security problem,

because your database can be accessed by other computers than your

own. Skip this step if

the applications which require mysql are running on the same

machine.

type:

nano /etc/mysql/my.cnf

and change the line:

bind-address = localhost

to your own internal ip address e.g.

192.168.1.20

bind-address = 192.168.1.20

If your ip address is dynamic you can also

comment out the bind-address line and it will default to your

current ip.

If you try to connect without changing the

bind-address you will recieve a "Can not connect to mysql error

10061".

Set mysql root password

Before accessing the database by console you

need to type:

mysql -u root

At the mysql console type:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

A successful mysql command will show:

Query OK, 0 rows affected (0.00 sec)

Mysql commands can span several lines. Do not

forget to end your mysql command with a semicolon.

Note: If you have already set a

password for the mysql root, you will need to use:

mysql -u root -p

(Did you forget the mysql-root password? See

MysqlPasswordReset.)

Create a mysql database

mysql> CREATE DATABASE database1;

Create a mysql user

For creating a new user with all privileges (use

only for troubleshooting), at mysql prompt type:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

For creating a new user with fewer privileges

(should work for most web applications) which can only use the

database named "database1", at mysql prompt type:

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON database1.* TO 'yourusername'@'localhost' IDENTIFIED BY 'yourpassword';

yourusername and yourpassword

can be anything you like. database1 is the name of the

database the user gets access to. localhost is the

location which gets access to your database. You can change it to

'%' (or to hostnames or ip addresses) to allow connections from

every location (or only from specific locations) to the database.

Note, that this can be a security problem and should only

be used for testing purposes!

To exit the mysql prompt type:

mysql> \q

Since the mysql root password is now set, if you

need to use mysql again (as the mysql root), you will need to use:

mysql -u root -p

and then enter the password at the prompt.

Backup-Settings

Please, let's say something in which directories

mysql stores the database information and how to configure a backup

Alternatively

There is more than just one way to set the mysql

root password and create a database. For example

mysqladmin can be used:

mysqladmin -u root -p password yourpassword

and

mysqladmin -u root -p create database1

mysqladmin is a command-line tool

provided by the default LAMP install.

Phpmyadmin and mysql-admin

All mysql tasks including setting the root

password and creating databases can be done via a graphical

interface using phpmyadmin or

mysql-admin.

To install one or both of them, first enable the

universe repository

Use any

method to install

phpmyadmin

Troubleshooting

Phpmyadmin & mysql-admin

If you get blowfish_secret

error: Choose

and set a phrase for cryptography in the file

/etc/phpmyadmin/blowfish_secret.inc.php and copy the line (not the

php tags) into the file /etc/phpmyadmin/config.inc.php or you will

receive an error.

If you get a 404 error upon visiting

http://localhost/phpmyadmin:

You will need to

configure apache2.conf to work with Phpmyadmin.

sudo gedit /etc/apache2/apache2.conf

Include the following line at the bottom of the

file, save and quit.

Include /etc/phpmyadmin/apache.conf

Alternative:

install phpMyAdmin from source

See the phpMyAdmin page

for instructions on how to install phpmyadmin from source:

Mysql-admin

Mysql-admin runs locally, on the desktop. Use

any

method to install

mysql-admin

For more information

Edit Apache Configuration

You may want your current user to be the PHP

pages administrator. To do so, edit the Apache configuration file :

$ gksudo "gedit /etc/apache2/apache2.conf"

Search both the strings starting by "User" and

"Group", and change the names by the current username and groupname

you are using. Then

you'll need to restart Apache. (look at the next chapter concerning

apache commands)

Configuration options relating specifically to

user websites (accessed through localhost/~username) are in

/etc/apache2/mods-enabled/userdir.conf.

Installing suPHP

suPHP is a tool for executing PHP scripts with

the permissions of their owners. It consists of an Apache module

(mod_suphp) and a setuid root binary (suphp) that is called by the

Apache module to change the uid of the process executing the PHP

interpreter.

Note: suPHP enforces, security and helps avoid

file permission problems under development environments with

several users editing the site files, but it also demands more

memory and CPU usage, which can degrade your server performance

under certain circumstances.

To only install suPHP. use any

method to install the package

libapache2-mod-suphp

Enable this module by doing

sudo a2enmod suphp

then use a text editor such as "sudo nano" at

the command line or "gksudo gedit" on the desktop to edit this file

sudo nano /etc/apache2/mods-available/php5.conf

or

gksu "gedit /etc/apache2/mods-available/php5.conf"

make a new empty line at the top of the content,

then add

make a new empty line at the bottom of the

content, then add

save changes

For security reasons we need to specify to suPHP

what are the document paths allowed to execute scripts, use a text

editor such as "sudo nano" at the command line or "gksudo gedit" on

the desktop to edit this file

sudo nano /etc/suphp/suphp.conf

or

gksu "gedit /etc/suphp/suphp.conf

find the value "docroot" and specify the

document path of your site files, for example:

docroot=/var/www/

that value restrict script execution only to

files inside "/var/www/"

docroot=/var/www/:${HOME}/public_html

that value restrict script execution only to

files inside a custom home folder for each configured user inside

"/var/www/:${HOME}/public_html"

for this tutorial we are going to use this value

docroot=/home/user/public_html/

which is the same Apache directory directive set

before in this document

save changes

to restart Apache, type in your terminal

sudo /etc/init.d/apache2 restart

Now lets create a test script to see if suPHP is

working correctly, in your terminal type

echo "<?php echo 'whoim = '.exec('/usr/bin/whoami');?>" | tee /home/user/public_html/whomi.php

that command creates a quick php test file to

display the current user executing the script

open your browser and navigate to

"localhost/whomi.php", most likely the browser will show you a

"500" server error, this is because suPHP does not allow too

permissive file and folder permissions and also does not allow

mixed file and folder ownership, to correct this type in your

terminal

sudo find /home/user/public_html/ -type f -exec chmod 644 {} \;

sudo find /home/user/public_html/ -type d -exec chmod 755 {} \;

sudo chown user:group -R /home/user/public_html/

those commands enforce a secure and correct file

and folder permission and also set a correct user and group

ownership for all of them

Now open your browser and navigate to

"localhost/whomi.php", if everything went fine you should see the

name of the file owner executing the script and not "www-data"

unless you specified so

Run, Stop, Test,

And Restart Apache

Use the following command to run Apache :

$ sudo /usr/sbin/apache2ctl start

To stop it, use :

$ sudo /usr/sbin/apache2ctl stop

To test configuration changes, use :

$ sudo /usr/sbin/apache2ctl configtest

Finally, to restart it, run :

$ sudo /usr/sbin/apache2ctl restart

Alternatively, you can use a graphical interface

by installing Rapache or the simpler

localhost-indicator.

Using Apache

You can access apache by typing 127.0.0.1 or

http://localhost (by

default it will be listening on port 80) in your browser address

bar. By default the

directory for apache server pages is /var/www . It needs root access in order to put

files in. A way to do it is just starting the file browser as root

in a terminal:

$ sudo nautilus

or

if you want to make /var/www your own. (Use only

for non-production web servers - this is not the most secure way to

do things.)

$ sudo chown -R $USER:$USER /var/www

Status

To check the status of your PHP installation:

$ gksudo "gedit /var/www/testphp.php"

and insert the following line

Securing Apache

If you just want to run your Apache install as a

development server and want to prevent it from listening for

incoming connection attempts, this is easy to do.

$ gksudo "gedit /etc/apache2/ports.conf"

$ password:

Change ports.conf so that it contains:

Listen 127.0.0.1:80

Save this file, and restart Apache (see above).

Now Apache will serve only to your home domain, http://127.0.0.1 or http://localhost.

Password-Protect a

Directory

There are 2 ways to password-protect a specific

directory. The

recommended way involves editing /etc/apache2/apache2.conf.

(To do this, you need

root access). The other

way involves editing a .htaccess file in the directory to

be protected. (To do

this, you need access to that directory).

Password-Protect a Directory With .htaccess

Warning: On at least some versions of

Ubuntu, .htaccess files will not work by default. See

EnablingUseOfApacheHtaccessFiles for help on enabling

them.

thumbnails

If you direct your web browser to a directory

(rather than a specific file), and there is no "index.html" file in that

directory, Apache will

generate an index file on-the-fly listing all the files and folders

in that directory. Each

folder has a little icon of a folder next to it.

To put a thumbnail of that specific image

(rather than the generic "image icon") next to each image file (.jpg, .png, etc.):

... todo: add instructions on how to do

thumbnails here, perhaps using Apache::AutoIndex 0.08 or Apache::Album

0.95 ...

Known problems

Skype incompatibility

Skype uses port 80

for incoming calls, and thus, may block Apache. The solution is to

change the port in one of the applications. Usually, port 81 is

free and works fine. To change the port number in Skype go to menu

Tools > Options, then click on the Advanced tab,

then in the box of the port for incoming calls write your

preference.

Other Apache Options

ServerSideIncludes

- enable SSI in Apache2

LocalhostSubdomain

- access your local files as if you had different subdomains

Further Information

StrongPasswords

is recommended reading!

BastilleLinux

is also recommended if you're going to be running a live webserver.

PHPOracle will

enable you to connect to Oracle databases.

PhpPear : PHP

Extension and Application Repository

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值