linux上安装MySQL-Beryl
一、可以到http://mirrors.sohu.com上下载与自己电脑匹配的mysql rpm软件包或压缩包,我们这里使用二进制来安装MySQL二、建议最好把MySQL安装在一个单独的分区上,最好使用逻辑卷LVM,这里我们安装在/dev/sdb5上使用逻辑分区
# fdisk -l
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +5G
Command (m for help): p
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks> /dev/sdb1 1 609 4891761 83Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (610-2610, default 610):
Using default value 610
Last cylinder or +size or +sizeM or +sizeK (610-2610, default 2610):
Using default value 2610
Command (m for help): p
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks> /dev/sdb1 1 609 4891761 83Linux
/dev/sdb2 610 2610 16073032+ 5Extended
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (610-2610, default 610):
Using default value 610
Last cylinder or +size or +sizeM or +sizeK (610-2610, default 2610):
Using default value 2610
Command (m for help): p
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks> /dev/sdb1 1 609 4891761 83Linux
/dev/sdb2 610 2610 16073032+ 5Extended
/dev/sdb5 610 2610 16073001 83Linux
Command (m for help): w
The partition table has been> Calling ioctl() to re-read partition table.
Syncing disks.
# partprobe /dev/sdb
# mkfs -t ext3 /dev/sdb5 //格式化为ext3
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block>
Fragment> 2011296 inodes, 4018250 blocks
200912 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4118806528
123 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.Use tune2fs -c or -i to override.
# mkdir mydata //在根目录下创建mydata目录
# mount /dev/sdb5 mydata/ //挂载sdb5到mydata目录上
# ls mydata/ //查看挂载是否成功,lost+found表明挂载成功
lost+found
# useradd -r -M mysql //添加mysql用户,-r表示为系统用户
#> uid=27(mysql) gid=27(mysql) groups=27(mysql)
# cd mydata/
# mkdir data //在mydata下创建data目录用于专门来安装mysql
# chown -R mysql:mysql .
//必须指定mydata属主属组及其子目录属主属组为mysql
# ll
total 20
drwxr-xr-x 2 mysql mysql4096 Nov3 21:45 data
drwx------ 2 mysql mysql 16384 Nov3 21:43 lost+found
# cd
# tar -zxvf Desktop/mysql-5.5.17-linux2.6-i686.tar.gz -C /usr/local/
//解压mysql并使用-C指定直接解压到/usr/local
# cd /usr/local
# ls
bingames lib mysql-5.5.17-linux2.6-i686share
etcincludelibexecsbin src
# ln -sv mysql-5.5.17-linux2.6-i686/ mysql
//把解压的mysql创建链接到mysql
create symbolic link `mysql' to `mysql-5.5.17-linux2.6-i686/'
# ll -h
total 76K
drwxr-xr-x2 root root 4.0K Aug82008 bin
drwxr-xr-x2 root root 4.0K Aug82008 etc
drwxr-xr-x2 root root 4.0K Aug82008 games
drwxr-xr-x2 root root 4.0K Aug82008 include
drwxr-xr-x2 root root 4.0K Aug82008 lib
drwxr-xr-x2 root root 4.0K Aug82008 libexec
lrwxrwxrwx1 root root 27 Nov3 21:48 mysql -> mysql-5.5.17-linux2.6-i686/
drwxr-xr-x 13 root root 4.0K Nov3 21:46 mysql-5.5.17-linux2.6-i686
drwxr-xr-x2 root root 4.0K Aug82008 sbin
drwxr-xr-x4 root root 4.0K Apr 122011 share
drwxr-xr-x2 root root 4.0K Aug82008 src
# cd mysql
# ll
total 76
drwxr-xr-x2 root root 4096 Nov3 21:46 bin
-rw-r--r--1 7161 wheel 17987 Oct 12 04:10 COPYING
drwxr-xr-x4 root root 4096 Nov3 21:46 data
drwxr-xr-x2 root root 4096 Nov3 21:46 docs
drwxr-xr-x3 root root 4096 Nov3 21:46 include
-rw-r--r--1 7161 wheel7604 Oct 12 04:10 INSTALL-BINARY
drwxr-xr-x3 root root 4096 Nov3 21:46 lib
drwxr-xr-x4 root root 4096 Nov3 21:46 man
drwxr-xr-x 10 root root 4096 Nov3 21:46 mysql-test
-rw-r--r--1 7161 wheel2552 Oct 12 04:10 README
drwxr-xr-x2 root root 4096 Nov3 21:46 scripts
drwxr-xr-x 27 root root 4096 Nov3 21:46 share
drwxr-xr-x4 root root 4096 Nov3 21:46 sql-bench
drwxr-xr-x2 root root 4096 Nov3 21:46 support-files
# chown -R mysql:mysql .
//把当前目录属主属组递归修改mysql
# ll -h
total 76K
drwxr-xr-x2 mysql mysql 4.0K Nov3 21:46 bin
-rw-r--r--1 mysql mysql18K Oct 12 04:10 COPYING
drwxr-xr-x4 mysql mysql 4.0K Nov3 21:46 data
drwxr-xr-x2 mysql mysql 4.0K Nov3 21:46 docs
drwxr-xr-x3 mysql mysql 4.0K Nov3 21:46 include
-rw-r--r--1 mysql mysql 7.5K Oct 12 04:10 INSTALL-BINARY
drwxr-xr-x3 mysql mysql 4.0K Nov3 21:46 lib
drwxr-xr-x4 mysql mysql 4.0K Nov3 21:46 man
drwxr-xr-x 10 mysql mysql 4.0K Nov3 21:46 mysql-test
-rw-r--r--1 mysql mysql 2.5K Oct 12 04:10 README
drwxr-xr-x2 mysql mysql 4.0K Nov3 21:46 scripts
drwxr-xr-x 27 mysql mysql 4.0K Nov3 21:46 share
drwxr-xr-x4 mysql mysql 4.0K Nov3 21:46 sql-bench
drwxr-xr-x2 mysql mysql 4.0K Nov3 21:46 support-files
# scripts/mysql_install_db --help //查看mysql安装帮助信息
Usage: scripts/mysql_install_db
--basedir=path The path to the MySQL installation directory.
//默认安装位置就是/usr/local
--builddir=path If using --srcdir with out-of-directory builds, you
will need to set this to the location of the build
directory where built files reside.
--cross-bootstrap For internal use.Used when building the MySQL system
tables on a different host than the target.
--datadir=path The path to the MySQL data directory.
--defaults-extra-file=name
Read this file after the global files are read.
--defaults-file=name Only read default options from the given file name.
--force Causes mysql_install_db to run even if DNS does not
work.In that case, grant table entries that normally
use hostnames will use IP addresses.
--help Display this help and exit.
--ldata=path The path to the MySQL data directory. Same as --datadir.
--no-defaults Don't read default options from any option file.
--rpm For internal use.This option is used by RPM files
during the MySQL installation process.
--skip-name-resolveUse IP addresses rather than hostnames when creating
grant table entries.This option can be useful if
your DNS does not work.
--srcdir=path The path to the MySQL source directory.This option
uses the compiled binaries and support files within the
source tree, useful for if you don't want to install
MySQL yet and just want to create the system tables.
--user=user_name The login username to use for running mysqld.Files
and directories created by mysqld will be owned by this
user.You must be root to use this option.By default
mysqld runs using your current login name and files and
directories that it creates will be owned by you.
All other options are passed to the mysqld program
# scripts/mysql_install_db --datadir=/mydata/data --user=mysql
WARNING: The host 'beryl.tie' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h beryl.tie password 'new-password'
Alternatively you can run:
./bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
# ln -sv /usr/local/mysql/include/ /usr/include/mysql
//把include头文件链接到/usr/local/mysql
create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include/'
# ls man
man1man8
# vim /etc/man.config //导出man文件,加载man路径
MANPATH /usr/local/mysql/man
# vim /etc/ld.so.conf.d/mysql.conf
//导处所有lib库到/usr/local/mysql/lib
/usr/local/mysql/lib
# ldconfig -v //整个库文件重新加载一下当前所有的库
# vim /etc/profile //导出bin二进制文件
PATH=$PATH:/usr/local/mysql/bin
# . !$ //为了让其立即生效可重读,但有其他副作用
. /etc/profile
# cd support-files/ //support-files存放所有启动脚本
# ls
binary-configure my-huge.cnf mysqld_multi.server
config.huge.ini my-innodb-heavy-4G.cnfmysql-log-rotate
config.medium.inimy-large.cnf mysql.server
config.small.ini my-medium.cnf ndb-config-2-node.ini
magic my-small.cnf
# cp mysql.server /etc/init.d/mysqld
//拷贝mysqld启动脚本到init.d下
# chkconfig --add mysqld //添加mysqld到开机自启动
# chkconfig --list mysqld
# cp my-large.cnf /etc/my.cnf
//为当前系统准备my.cnfl配置文件并拷贝到/etc/my.cnf, 要根据自己硬件的内存选择此配置文件,可以使用free -m命令查看自己的内存大小
# vim /etc/my.cnf
thread_concurrency = 2 //并发线程最好为cpu个数的两倍
datadir = /mydata/data //添加目录数据目录所在的位置
# cd
# service mysqld start //启动mysql
Starting MySQL...
# cd mydata/data/ //可以到mydata下的data查看安装之后所产生的文件
# netstat -tnlp //查看mysql端口3306是否已开启
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 2480/hpiod
tcp 0 0 0.0.0.0:611 0.0.0.0:* LISTEN 2125/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2092/portmap
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2511/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2543/sendmail: acce
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 2485/python
tcp 0 0 :::3306 :::* LISTEN 4782/mysqld
tcp 0 0 :::22 :::* LISTEN 2500/sshd
# mysqladmin -uroot -hlocalhost password '123456'
//mysql默认安装成功后所有账号都没有设置密码,因此需要给mysql相关账号添加密码。-h可直接指定为其添加密码的主机名称。若不适用-h则表示为所有root用户添加密码。
# mysql -uroot -p //使用root用户连入mysql
Enter password:
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection> Server version: 5.5.17-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use mysql //设置默认使用的数据库
Database changed
mysql> SELECT User,Host,Password FROM user WHERE User='root';
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | beryl.tie | |
| root | 127.0.0.1 | |
| root | ::1 | |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> SET PASSWORD FOR root@beryl.tie=PASSWORD('123456');
//使用另一种方式为mysql用户添加密码
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='root';
//查看mysql所有root用户、主机、密码等信息
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | beryl.tie | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | |
| root | ::1 | |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES; //加速生效
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR root@127.0.0.1=PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='root';
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | beryl.tie | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1 | |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> DROP USER root@'::1'; //删除ipv6用户账号
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='root';
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | beryl.tie | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'192.168.200.%'> //添加使其192.168.200网段的用户具有连入mysql数据库的权限
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='root';
+------+---------------+-------------------------------------------+
| User | Host | Password |
+------+---------------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | beryl.tie | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 192.168.200.% | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+---------------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='';
//mysql数据库默认安装成功后会有两个为空的用户账号,很不安全
+------+-----------+----------+
| User | Host | Password |
+------+-----------+----------+
| | localhost | |
| | beryl.tie | |
+------+-----------+----------+
2 rows in set (0.00 sec)
mysql> help DELETE //使用help查看DELETE命令的帮助信息
mysql> DELETE FROM user WHERE user=''; //删除这两个用户名为空的账号
Query OK, 2 rows affected (0.01 sec)
mysql> SELECT User,Host,Password FROM user WHERE User='';
Empty set (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
//使用二进制方式在redhat上安装mysql及其基本配置,暂做到这里,谢谢
页:
[1]