summaryrefslogtreecommitdiff
path: root/Docs/To-be-included-in-the-manual/MySQL-for-dummies
diff options
context:
space:
mode:
Diffstat (limited to 'Docs/To-be-included-in-the-manual/MySQL-for-dummies')
-rw-r--r--Docs/To-be-included-in-the-manual/MySQL-for-dummies271
1 files changed, 0 insertions, 271 deletions
diff --git a/Docs/To-be-included-in-the-manual/MySQL-for-dummies b/Docs/To-be-included-in-the-manual/MySQL-for-dummies
deleted file mode 100644
index 7b669af18dc..00000000000
--- a/Docs/To-be-included-in-the-manual/MySQL-for-dummies
+++ /dev/null
@@ -1,271 +0,0 @@
-===============================================================================
-installing/mysql/binary Fri Jul 17 13:03:03 1998 has
-===============================================================================
-
- MySQL for dummies - Part 1
- How to get the binary distribution running on a UNIX system
-
- MySQL is a trademark of TcX, Sweden.
-
-===============================================================================
-
-Introduction:
-
-This is a simple cookbook for the helpless newbie taking his very first steps
-with MySQL, when he needs a few hints about the options and access rights
-installing the system and starting the basic modules, before he has "aha"ed
-on how simple and clean the basic structure of MySQL is. It will not help
-you with the intricacies and subtle possibilities of SQL as implemented in
-MySQL.
-
-The information in this document is all contained in the MySQL manual in a
-more or less obvious form, but for the newbie that document is a bit over-
-whelming in size, and it contains some new concepts that take some getting
-used to. Sorry if it is pitched too low for some readers. It is only
-intended to get the binary distribution up and running.
-
-I successfully got MySQL going on both a Sun SparcStation 1 running SunOS 4.1.2
-and 2 Linux systems running SuSE release 5.0, one with kernel version 2.0.30,
-one with 2.0.33 by doing exactly what is given here. If it doesn't work
-for you, I suggest the problem is with your system and not with the
-MySQL binary distribution.
-
--- Howard Schultens hs@neuro-physiol.med.uni-goettingen.de
-
--------------------------------------------------------------------------------
-
-Nomenclature:
-
-In the following, 'MySQL' refers to the entire database system distributed
-and licensed by TcX. 'mysql' means a specific program in this system.
-
--------------------------------------------------------------------------------
-
-MySQL user administration and access rights ("privileges"):
-
-It is obvious that MySQL needs its own user management because it is a system
-that is implemented on a number of architectures -- you should be able to use
-it in an identical way on different operating systems. The MySQL user names
-and passwords have basically nothing at all to do with user names and
-passwords on whatever operating system you install it on. You will,
-unfortunately, have to install your users again on MySQL. But this system has
-some big advantages: it is a secure system that allows you to finely
-differentiate access rights based on WHO is using a database from WHERE. It
-does this by the use of its own database containing 3 tables "user" for the
-user names, "db" for the databases, and "host" for the machines that access
-databases. "user" and "db" are the most important for the newbie.
-
-Section 6 of the manual describes all this in detail.
-
--------------------------------------------------------------------------------
-
-Doing it:
-
-In the following, "foo>" denotes the prompt from your system in user mode,
-"foo#" as root/superuser.
-
-
-1) Get the appropriate binary distribution from a mirror site or directly
- from TcX at URL http://www.tcx.se. The file name has the form
- mysql-VERSION-SYSTEM.tgz
-
- VERSION = Version number, e.g. 3.21.33
- SYSTEM = OS and architecture, e.g. sunos4.1.4-sparc
-
- i.e., you would download a file mysql-3.21.33-sunos4.1.4-sparc.tgz.
-
- This example is for SunOS, but it works exactly analogously on Linux.
-
-2) cd to /usr/local and unpack this with, e.g. the command
-
- foo#gzip -c -d mysql-VERSION-SYSTEM.tgz|tar xvf -
-
-3) The files are stored in a directory /usr/local/mysql-VERSION-SYSTEM
- Make a symbolic link to this directory:
-
- foo#ln -s mysql-VERSION-SYSTEM mysql
-
- At this point, you might want to create a special user for all your
- MySQL stuff. I use "mysql". Then you could do
-
- foo#chown -R mysql mysql-VERSION-SYSTEM
-
-4) FIRST, take care of all the PERL stuff:
-
- o) You need PERL 5.004 or later already installed on your system. Take
- care of this first if necessary.
-
- a) cd to /usr/local/mysql/perl/DBI and do
- foo#perl Makefile.PL
- foo#make
- foo#make test
- foo#make install (if "make test" is successful)
-
- b) cd to /usr/local/mysql/perl/Mysql/modules and do
- foo#perl Makefile.PL
- foo#make
- foo#make test
- foo#make install (if "make test" is successful)
-
- c) As an option, you can install Data::ShowTable, but this is not absolutely
- necessary for mysql. Get the PERL module Data-ShowTable-VER.tar.gz
- (VER = version, eg. 3.3) from a CPAN mirror: I got mine at
-
- ftp://ftp.gwdg.de/pub/languages/perl/CPAN/modules/by-category/06_Data_Type_Utilities/Data/Data-ShowTable-3.3.tar.gz
-
- (You should be able to replace "ftp.gwdg.de" by the name of another
- FTP mirror)
-
- Put this into /usr/local/mysql/perl and unpack it.
- You get a directory 'Data-ShowTable-VER'. cd into there and
- (as root/superuser)
- foo#perl Makefile.PL
- foo#make
- foo#make test
- foo#make install (if "make test" is successful)
-
-5) cd to /usr/local/mysql and do
- foo#scripts/mysql_install_db
-
- you should be in /usr/local/mysql when you start the script.
-
-==>*NOTE* you might want to edit this script before you run it the first
- time. See method 9b) below.
-
- If this is successful, one or more copies of the mysql daemon, mysqld,
- will be running. On SunOS 4.1.x, you get one. On Linux, 3 are running.
-
--------------------------------------------------------------------------------
-In the rest of this, I will always suppose you are starting in the directory
-/usr/local/mysql, even if it seems mildly inconvenient
--------------------------------------------------------------------------------
-
-6) You can now select the database 'test' and mess around with it using
- the client program bin/mysql: start it with
-
- foo>bin/mysql -u root test
-
- This says, "start up the MySQL command-line client with the user name
- 'root' and use the database named 'test', which is a subdirectory in
- '/usr/local/mysql/data". (n.b. this is NOT the root user of your UNIX
- system, it is a MySQL user with the same name. You will notice that you
- don't need a password for this user to use mysql).
-
- Actually, the way the system is set up by bin/mysql_install_db, you
- don't even need a user name to access the database 'test'. You can start
- the client simply with
-
- foo>bin/mysql test
-
- 'mysql' should start up with a greeting and a line telling you what your
- connection id and server version is. At this point, the database 'test'
- is empty, no tables or anything are defined.
-
- When you issue SQL commands, DON'T FORGET THE FINAL SEMICOLON, or mysql acts
- dumb:
-
- mysql>select * from user
- ->
- ->
-
- and you wonder what's going on. 'mysql' reminds you of this on startup.
-
-7) When you want to close down the server, do
- foo>bin/mysqladmin shutdown
-
-8) I recommend editing the script bin/safe_mysqld for the binary release
- so that it always starts up with the correct directories. I replaced
- the entire header up to but not including
-
- pidfile=$DATADIR/`/bin/hostname`.pid
- log=$DATADIR/`/bin/hostname`.log
- err=$DATADIR/`/bin/hostname`.err
-
- with
-
- MY_BASEDIR_VERSION=/usr/local/mysql
- DATADIR=$MY_BASEDIR_VERSION/data
- ledir=$MY_BASEDIR_VERSION/bin
- cd $MY_BASEDIR_VERSION
-
- This lets you start the mysql daemon from wherever you like.
-
-9) Now let's say you want to put some of your own databases and users into
- the system. The simplest, most powerful, and dangerous way to do this is
- to start up the mysql daemon again with:
-
- foo>bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data -Sg
-
- This skips loading the grant tables. The system is open to every kind of
- mistake now, so be careful. Any user can muck up the grant tables, ie.
- the lists of users, hosts, and databases themselves, so only use this
- mode to do these first, very basic things.
-
- Start the client again now, with
- foo>bin/mysql mysql
-
- This tells the client to use the database 'mysql', which is the directory
- that contains the lists (ie. the tables) of all the users, hosts, and
- databases in the system, so be careful!!!!!!!!!!!!
-
- All of what follows is taken essentially from section 6 of the manual.
-
- a) For the start, just define a couple of users for the MySQL system:
- i) an administrator, such as 'mysql', with its own password, that
- can do everything with the system:
-
- mysql> insert into user values('localhost','mysql',password('xyzzy'),
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
-
- * For some reason, on my Linux system with a German keyboard, I have *
- * to use the acute accent instead of the apostrophe, otherwise I get *
- * parse errors. *
-
- This defines the user name 'mysql' with password 'xyzzy' that can
- do everything. To look at what you just did, type in
-
- mysql> select * from user;
-
- mysql types out a table with all the known users and their privileges.
-
- ii) a privileged user for playing around:
-
- mysql> insert into user values('localhost','john',password('blah0x1'),
- 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
-
- iii) create your own database for a todo list, phone numbers, whatever:
-
- mysql> create database johns_DB;
- mysql> insert into db values('localhost','johns_DB','john','Y','Y','Y','Y','Y','Y');
-
- The first line creates the databse "johns_DB", but that doesn't
- make it visible to mysql. The second line does that.
-
- iv) When you are done installing users and databases, quit mysql and
- issue the command
-
- foo>bin/mysqladmin reload
-
- b) Another method to do this was suggested by Sinisa Milivojevic, and that
- is to edit the script /usr/local/mysql/scripts/mysql_install_db to
- define the databases and install the more important users when you
- start the system the very first time. This would have the advantage
- that you can save the script and re-install the system with it if you
- have to, automatically defining the important structures. It requires
- a little more knowledge of the MySQL system to do this.
-
- You might want to use this method anyway since it saves editing
- mysql_install_db to have it install a superuser with a name other
- than "root". The places to change are easy to find. You can, of
- course, use the first method above and remove the user named 'root'
- when you are done.
-
-
-===============================================================================
-
-If anyone is interested enough in this document to make suggestions on how
-to improve it, I would be glad to get emails on it. I hope it helps
-someone get going with MySQL a little easier.
-
---Howard
- hs@neuro-physiol.med.uni-goettingen.de